Giống như các ngôn ngữ khác, Python cung cấp một số hàm built-in để đọc, ghi hoặc truy cập tệp. Python có thể xử lý chủ yếu hai loại tệp. Tệp văn bản bình thường và tệp nhị phân.
Đối với tệp văn bản, mỗi dòng được kết thúc bằng ký tự đặc biệt '\n' (Được gọi là EOL hoặc End Of Line). Đối với tệp nhị phân, không có ký tự kết thúc dòng. Nó lưu dữ liệu sau khi chuyển đổi nội dung thành luồng bit.
Trong phần này chúng ta sẽ thảo luận về tệp văn bản.
Chế độ truy cập tệp
| STT | Chế độ & Mô tả |
|---|---|
| 1 | r Chế độ chỉ đọc. Mở tệp văn bản để đọc. Khi tệp không tồn tại, nó ném ra I/O Error. |
| 2 | r+ Chế độ đọc và ghi. Khi tệp không tồn tại, nó sẽ ném ra I/O Error. |
| 3 | w Chỉ dùng cho ghi. Khi tệp không tồn tại, nó sẽ tạo tệp trước, sau đó bắt đầu ghi, khi tệp tồn tại, nó sẽ xóa nội dung của tệp đó và bắt đầu ghi từ đầu. |
| 4 | w+ Chế độ ghi và đọc. Khi tệp không tồn tại, nó có thể tạo tệp, hoặc khi tệp tồn tại, dữ liệu sẽ bị ghi đè. |
| 5 | a Đây là chế độ nối thêm. Vì vậy nó ghi dữ liệu ở cuối tệp. |
| 6 | a+ Chế độ nối thêm và đọc. Nó có thể nối thêm dữ liệu cũng như đọc dữ liệu. |
Bây giờ xem cách một tệp có thể được ghi sử dụng phương thức writelines() và write().
Mã ví dụ
# Tạo tệp rỗng và ghi một số dòng
line1 = 'This is first line. \n'
lines = ['This is another line to store into file.\n',
'The Third Line for the file.\n',
'Another line... !@#$%^&*()_+.\n',
'End Line']
# mở tệp ở chế độ ghi
my_file = open('file_read_write.txt', 'w')
my_file.write(line1)
my_file.writelines(lines) # Ghi nhiều dòng
my_file.close()
print('Writing Complete')
Đầu ra
Writing Complete
Sau khi ghi các dòng, chúng ta đang nối thêm một số dòng vào tệp.
Mã ví dụ
# Chương trình để nối thêm một số dòng
line1 = '\n\nThis is a new line. This line will be appended. \n'
# mở tệp ở chế độ nối thêm
my_file = open('file_read_write.txt', 'a')
my_file.write(line1)
my_file.close()
print('Appending Done')
Đầu ra
Appending Done
Cuối cùng, chúng ta sẽ xem cách đọc nội dung tệp từ phương thức read() và readline(). Chúng ta có thể cung cấp một số nguyên 'n' để lấy 'n' ký tự đầu tiên.
Mã ví dụ
# Chương trình đọc từ tệp
# mở tệp ở chế độ đọc
my_file = open('file_read_write.txt', 'r')
print('Hiển thị toàn bộ nội dung:')
print(my_file.read())
# Hiển thị hai dòng đầu tiên
my_file.seek(0)
print('Hai dòng đầu tiên:')
print(my_file.readline(), end='')
print(my_file.readline(), end='')
# Hiển thị tới 25 ký tự
my_file.seek(0)
print('\n\n25 ký tự đầu tiên:')
print(my_file.read(25), end='')
my_file.close()
Đầu ra
Hiển thị toàn bộ nội dung: This is first line. This is another line to store into file. The Third Line for the file. Another line... !@#$%^&*()_+. End Line This is a new line. This line will be appended. Hai dòng đầu tiên: This is first line. This is another line to store into file. 25 ký tự đầu tiên: This is first line. This