Bài 41. LÀM VIỆC VỚI FILE TRONG PYTHON P2 (READ, READLINE, READLINES, CONSTRUCTOR)

I. Đọc File Trong Python

 Trong bài học trước, chúng ta đã tìm hiểu về mở và đóng file trong Python. Trong bài này, ta sẽ tìm hiểu về cách đọc file .txt thông qua 1 số phương thức:
1. Phương thức read
2. Phương thức readline
3. Phương thức readlines

II. Phương thức Read

Cú pháp:
File.read(number)
Nếu number bị bỏ trống hoặc là một số âm thì phương thức này sẽ đọc hết nội dung của file đồng thời đưa con trỏ file tới cuối file. Nếu không nó sẽ đọc tới n kí tự (với number = n) hoặc cho tới khi nội dung của file đã đọc xong.
+ Sau khi đọc được nội dung, nó sẽ trả về dưới một dạng chuỗi.
+ Nếu không đọc được gì, phương thức sẽ trả về một chuỗi có độ dài
bằng 0.

Chúng ta sẽ thực hành với file Test.txt có nội dung như hình dưới:

Ví dụ 1 (Đọc hết cả nội dung file .txt):
Các câu lệnh:

# Dùng phương thức open để mở file Test.txt
f = open(“Test.txt”)
#dùng phương thức read để đọc toàn bộ nội dung và in ra
print(f.read())
#Lúc này con trỏ đang ở vị trí cuối cùng, ta dùng lệnh in 1 lần nữa để kiểm tra
print(f.read())
#Đóng file
f.close()
 

Kết quả trả ra:
We are Beginners.

We love Python.
print(“Hello World!”)

Lệnh in thứ 2 do con trỏ chuột đang ở cuối văn bản nên khi in lần thứ 2 sẽ trả ra khoảng trống.

Ví dụ 2 (Đọc 1 phần nội dung file .txt):
Các câu lệnh:

# Dùng phương thức open để mở file Test.txt
f = open(“Test.txt”)
#dùng phương thức read để đọc 1 phần nội dung và in ra
print(f.read(6))
print(f.read(9))
#Đóng file
f.close()
 

Kết quả trả ra:
We are
 Beginner

Lệnh print đầu tiên, con trỏ chuột sẽ chạy từ vị trí 0 đến ký tự thứ 6.
Lệnh print thứ 2 sẽ chạy tiếp từ vị trí ký tự thứ 7 và ra kết quả như trên hình.

III. Phương thức Readline

Cú pháp:
File.readline(number)
Phương thức này cũng tương tự phương thức read, sự khác biệt là phương thức này chỉ đọc 1 dòng, tức là nếu hết dòng hoặc hết file thì ngừng.

Ví dụ 3:
Các câu lệnh:

#Dùng phương thức open để mở file Test.txt
f = open(“Test.txt”)
#Dùng phương thức readline để đọc nội dung dòng đầu tiên và in ra
print(f.readline())

#Đóng file
f.close()
 

Kết quả trả ra:
We are Beginners.

Phương thức readline dừng lai khi xuống dòng ở dòng đầu tiên.

Ví dụ 4 (Đọc 1 phần nội dung file .txt):
Các câu lệnh:

# Dùng phương thức open để mở file Test.txt
f = open(“Test.txt”)
#dùng phương thức readline để đọc 1 phần nội dung và in ra
print(f.readline(3))
print(f.readline(17))
#Đóng file
f.close()
 

Kết quả trả ra:
We
are Beginners.

Lệnh print đầu chạy tới ký tự n = 3 thì dừng.
Lệnh print thứ 2 chạy tiếp từ n = 4 đến n= 14 thì xuống dòng, do đó nó dừng lại mà không chạy sang dòng thứ 2

IV. Phương thức Readlines

Cú pháp:
File.readlines(hint)
Ở mức độ cơ bản, chúng ta không cần quan tâm tới hint.
Phương thức này sẽ đọc toàn bộ file, sau đó chuyển đổi các dòng của file thành các phần tử của 1 list.
Con trỏ sẽ đưa tới dòng cuối cùng của file. Nếu tiếp tục dùng readlines, ta sẽ thu được 1 list rỗng.

Ví dụ 5:
Các câu lệnh:

#Dùng phương thức open để mở file Test.txt
f = open(“Test.txt”)
#Dùng phương thức readlines để đọc nội dung toàn bộ file và in ra
print(f.readlines())

#Đóng file
f.close()
 

Kết quả trả ra:
[‘We are Beginners.\n’, ‘We love Python.\n’, ‘print(“Hello World!”)\n’]

Kết quả trả ra là 1 list gồm các phần tử là các dòng trong file Test.txt đi kèm với escape sequence \n

V. Đọc FILE bằng CONSTRUCTOR

Để đọc file .txt, ta có thể sử dụng constructor list hoặc tuple. Các bạn xem ví dụ dưới để rõ hơn.

Ví dụ 6:
Các câu lệnh:

#Dùng phương thức open để mở file Test.txt
f = open(“Test.txt”)
#Sử dụng constructor list để tạo 1 list
list_read = list(f)
#in ra để xem
print(list_read)
#Đóng file
f.close()
 

Kết quả trả ra:
[‘We are Beginners.\n’, ‘We love Python.\n’, ‘print(“Hello World!”)\n’]

Tương tự, chúng ta có thể sử dụng phương thức constructor tuple. Kết quả trả ra cũng tương tự constructor list, chỉ khác là kết quả trả ra là dấu ngoặc nhọn thay vì dấu ngoặc vuông.

VI. Kết Luận

Như vậy, chúng tôi đã tiếp tục giới thiệu tới các bạn các khái niệm cơ bản của xử lý file trong Python. Nếu có vấn đề nào chưa rõ, các bạn hãy liên hệ với chúng tôi để được giúp đỡ.

Trả lời

Email của bạn sẽ không được hiển thị công khai.