Trong nnlt python cú pháp mở tệp để đọc

Python cung cấp các hàm có sẵn để đọc một tệp tin vào chương trình. Có hai loại tệp có thể được đọc vào trong chương trình Python, đó là:  tệp văn bản và tệp nhị phân.

  • Tệp văn bản: Trong loại tệp này, mỗi dòng văn bản được kết thúc bằng một ký tự đặc biệt gọi là EOL (End of Line), là ký tự dòng mới (‘\ n’) trong Python
  • Tệp nhị phân: Trong loại tệp này, không có dấu kết thúc cho một dòng và dữ liệu được lưu trữ được chuyển đổi thành mã nhị phân

Python cung cấp cho chúng ta hàm read() để sử dụng trong việc đọc dữ liệu có trong một File. Nhưng trước khi sử dụng được hàm read() để đọc dữ liệu của File, hãy đảm bảo rằng bạn đã mở File trong chương trình Python bằng cách sử dụng hàm open() trong Python.

Ví dụ đơn giản dưới đây, sử dụng hàm open() để mở một File văn bản có phần mở rộng .txt và sử dụng hàm read() để đọc dữ liệu trong File.

File văn bản này sẽ có tên là laptrinhtudau.txt và đường dẫn là “D:\laptrinhtudau.txt” trong File này sẽ có nội dung như bên dưới:

Trong nnlt python cú pháp mở tệp để đọc

Dưới đây là chương trình, sử dụng hàm open() với chế độ “r” (chế độ chỉ đọc) sau đó sử dụng hàm read() để đọc dữ liệu có trong File laptrinhtudau.txt

# Mo File voi che do "r"
f = open("D:\laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()

Nếu như File cần đọc được đặt cùng thư mục với file Python đang chứa  chương trình được thực thi, khi đó ta chỉ cần sử dụng đường dẫn laptrinhtudau.txt trong hàm open()

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()

Kết quả:

Xin chao, toi la laptrinhtudau.com!2. Đọc từng dòng của File trong Python

Trong một File có thể có nhiều hơn 1 dòng dữ liệu. Khi đó, để đọc ra từng dòng có trong File ta cần sử dụng hàm readline() để thực hiện việc này.

Một ví dụ đơn về cách sử dụng hàm readline() để đọc từng dòng dữ liệu có trong File “D:\yeulaptrinh.txt” bên dưới:

Trong nnlt python cú pháp mở tệp để đọc

 

Chương trình dưới đây, sử dụng hàm readline() để đọc ra dữ liệu của dòng đầu tiên có trong File trên như sau:

# Doc File voi che do "r"
f = open("D:\yeulaptrinh.txt", "r")

# Doc du lieu dong dau tien trong file va hien thi
print(f.readline())

# Dong File
f.close()

Kết quả:

Xin chao

Để đọc hai dòng đầu tiên có trong File trên, khi đó ta chỉ cần gọi hai lần hàm readline() như sau:

# Doc File voi che do "r"
f = open("D:\yeulaptrinh.txt", "r")

# Doc du lieu dong dau tien va dong thu 2 trong file va hien thi
print(f.readline())
print(f.readline())

# Dong File
f.close()

Kết quả:

Xin chao
toi la Nam

Trong trường hợp bạn cần đọc tất cả các dòng có trong File trên, khi đó ta chỉ cần sử dụng vòng lặp for và duyệt qua File đó như sau:

# Doc File voi che do "r"
f = open("D:\yeulaptrinh.txt", "r")

# Doc tat ca cac dong trong File
for x in f:
    print(x)

# Dong File
f.close()

Kết quả:

Xin chao
toi la Nam
nam nay toi 20 tuoi
toi yeu lap trinh!3. Đọc ký tự của File trong Python

Theo mặc định, hàm read() khi được gọi nó sẽ trả về toàn bộ dữ liệu có trong File, nhưng bạn cũng có thể chỉ định số lượng ký tự muốn trả về.

Ví dụ ta chỉ cần đọc và hiển thị ra 8 ký tự đầu tiên trong File “D:\laptrinhtudau.txt”, khi đó ta sẽ cần sử dụng hàm read() như sau:

# Mo File voi che do "r"
f = open("D:\laptrinhtudau.txt", "r")

# Doc 8 ky tu dau tien trong File va hien thi
print(f.read(8))

# Dong File
f.close()

Kết quả:

Xin chao

Khi truyền vào hàm read() một số âm (ví dụ là -1) hoặc truyền vào một số quá lớn, khi đó hàm read() sẽ thực hiện đọc tất cả các ký tự trong File đó.

Trong đó, việc đầu tiên cần làm là mở (open) file. Python xây dựng sẵn hàm open() để giúp chúng ta mở file với các chế độ khác nhau. Có 4 chế độ (mode) khi mở file trong Python là:

  • “r“: Chế độ đọc file, là chế độ mặc định khi mở file. Ở chế độ này, chúng ta mở file để đọc và sẽ gặp lỗi nếu mở một file không tồn tại.
  • “a“: Chế độ nối (append) file. Mở file để ghi thêm dữ liệu vào file, tạo file nếu file không tồn tại.
  • “w“: Chế độ ghi (write) file. Mở file để ghi đè (overwrite) dữ liệu vào file, tạo file nếu file không tồn tại.
  • “x“: Chế độ tạo (create) file. Tạo một file cụ thể, trả về lỗi nếu file đó đã tồn tại.

Ngoài ra, chúng ta có thể chỉ rõ file được xử lý ở chế độ nhị phân (binary) hoặc chế độ văn bản (text):

  • “t“: Chế độ text, là chế độ mặc định.
  • “b“: Chế độ binary.

Ví dụ, mở một file gochocit.txt ở chế độ mặc định.

f = open("gochocit.txt")

Câu lệnh mở file ở trên tương đương với:

f = open("gochocit.txt", "rt")

Bởi vì “r” và “t” là các giá trị mặc định nên chúng ta không cần phải chỉ rõ chúng.

Khi mở file ở chế độ văn bản (text), nên chỉ định bộ mã hóa các ký tự trong file để tránh gặp các lỗi về mã hóa ký tự. Bộ mã hóa ký tự utf-8 là một trong những bộ mã hóa ký tự được sử dụng phổ biến nhất.

f = open("gochocit.txt", "r", encoding="utf-8")

2. Đọc (read) file trong Python

Giả sử, chúng ta có file gochocit.txt nằm cùng thư mục với file code

f = open("gochocit.txt", "rt")
3 của Python với nội dung như sau:

Hello all, welcome to gochocit.com!

Very happy to see you visit gochocit.com.

Hope it might be useful for you!

Khi sử dụng hàm

f = open("gochocit.txt", "rt")
4 để mở file, hàm
f = open("gochocit.txt", "rt")
4 sẽ trả về một đối tượng file. Đối tượng này có hàm
f = open("gochocit.txt", "rt")
6 để đọc (read) dữ liệu trong file đó.

f = open("gochocit.txt")
print(f.read())
Kết quả
Hello all, welcome to gochocit.com!
Very happy to see you visit gochocit.com.
Hope it might be useful for you!

Nếu file gochocit.txt nằm ở một thư mục khác, chúng ta cần cung cấp đường dẫn chính xác của file này khi mở file.

f = open("C:\python-examples\gochocit.txt")
print(f.read())

Hàm

f = open("gochocit.txt", "rt")
6 giúp đọc tất cả dữ liệu trong file. Nhưng chúng ta có thể xác định số ký tự cần đọc bằng cách truyền đối số cho hàm
f = open("gochocit.txt", "rt")
6.

f = open("gochocit.txt")
print(f.read(10))
Kết quả
Hello all,

Nếu muốn đọc từng dòng trong file thì Python có hỗ trợ hàm

f = open("gochocit.txt", "rt")
9. Ví dụ bên dưới là đọc 2 dòng của file gochocit.txt.

f = open("gochocit.txt")
print(f.readline(), end='')
print(f.readline(), end='')
Kết quả
Hello all, welcome to gochocit.com!
Very happy to see you visit gochocit.com.

Kế tiếp, sử dụng vòng lặp for là cách thường dùng để đọc từng dòng trong file cho đến khi kết thúc file.

f = open("gochocit.txt", "rt")
0
Kết quả
Hello all, welcome to gochocit.com!
Very happy to see you visit gochocit.com.
Hope it might be useful for you!

3. Đóng (close) file trong Python

Khi đọc/ghi file xong, chúng ta nên đóng file với hàm

f = open("gochocit.txt", "r", encoding="utf-8")
0.

f = open("gochocit.txt", "rt")
2

Việc đóng file là đặc biệt cần thiết khi file được sử dụng để đọc/ghi dữ liệu thường xuyên bởi các chương trình khác nhau.