Cho đến nay, bạn đã đọc và ghi vào standard input/output. Bây giờ chúng ta sẽ xem cách sử dụng file dữ liệu thực tế.
Python cung cấp các hàm và phương thức cơ bản cần thiết để thao tác file mặc định. Bạn có thể thực hiện hầu hết các thao tác file sử dụng đối tượng file.
Hàm open
Trước khi đọc/ghi file, bạn phải mở nó bằng hàm built-in open() của Python. Hàm này tạo một đối tượng file, được dùng để gọi các phương thức hỗ trợ khác.
Cú pháp
file object = open(file_name [, access_mode][, buffering])
Chi tiết tham số:
- file_name - Chuỗi chứa tên file muốn truy cập.
- access_mode - Xác định chế độ mở file: đọc, ghi, thêm, v.v. Danh sách đầy đủ các giá trị có trong bảng dưới. Tham số tùy chọn, mặc định là đọc (r).
- buffering - Nếu 0: không buffer. Nếu 1: line buffering. Nếu >1: buffer với kích thước chỉ định. Nếu âm: kích thước buffer mặc định của hệ thống.
Danh sách các chế độ mở file:
| STT | Chế độ & Mô tả |
|---|---|
| 1 | r Mở để chỉ đọc. Con trỏ ở đầu file. Mặc định. |
| 2 | rb Mở để chỉ đọc dạng binary. Con trỏ ở đầu file. |
| 3 | r+ Mở để đọc và ghi. Con trỏ ở đầu file. |
| 4 | rb+ Mở để đọc và ghi binary. Con trỏ ở đầu file. |
| 5 | w Mở để chỉ ghi. Ghi đè nếu file tồn tại. Tạo mới nếu không tồn tại. |
| 6 | wb Mở để chỉ ghi binary. Ghi đè nếu tồn tại. Tạo mới nếu không. |
| 7 | w+ Mở để đọc và ghi. Ghi đè file hiện có. Tạo mới nếu không tồn tại. |
| 8 | wb+ Mở để đọc và ghi binary. Ghi đè nếu tồn tại. Tạo mới nếu không. |
| 9 | a Mở để thêm (append). Con trỏ ở cuối file nếu tồn tại. Tạo mới nếu không. |
| 10 | ab Mở để thêm binary. Con trỏ ở cuối file nếu tồn tại. Tạo mới nếu không. |
| 11 | a+ Mở để thêm và đọc. Con trỏ ở cuối file nếu tồn tại. Tạo mới nếu không. |
| 12 | ab+ Mở để thêm và đọc binary. Con trỏ ở cuối file nếu tồn tại. Tạo mới nếu không. |
Các thuộc tính đối tượng file
Khi file được mở và bạn có đối tượng file, bạn có thể lấy nhiều thông tin liên quan.
| STT | Thuộc tính & Mô tả |
|---|---|
| 1 | file.closed True nếu file đã đóng, False ngược lại. |
| 2 | file.mode Trả về access mode file được mở. |
| 3 | file.name Trả về tên file. |
| 4 | file.softspace False nếu space yêu cầu rõ ràng với print, True ngược lại. |
Ví dụ
#!/usr/bin/python
# Mở file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace
Kết quả
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
Phương thức close()
Phương thức close() của đối tượng file flush mọi thông tin chưa ghi và đóng file object, sau đó không thể ghi thêm.
Python tự động đóng file khi đối tượng tham chiếu file được gán cho file khác. Thói quen tốt là dùng close() để đóng file.
Cú pháp
fileObject.close()
Ví dụ
#!/usr/bin/python
# Mở file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
# Đóng file
fo.close()
Kết quả
Name of the file: foo.txt