1. Đọc tệp tin
Python cung cấp 4 phương thức đọc tệp tin chính, mỗi phương thức phù hợp với các trường hợp sử dụng khác nhau:
read(): Đọc toàn bộ nội dung tệp, phù hợp với tệp nhỏ.read(size): Đọcsizebyte, hữu ích khi không biết kích thước tệp và muốn kiểm soát bộ nhớ.readline(): Đọc từng dòng, giúp tránh lỗi tràn bộ nhớ do tệp lớn.readlines(): Đọc tất cả dòng và trả về danh sách, tiện lợi cho tệp cấu hình.
Ví dụ sử dụng read():
with open('data.txt', encoding='utf-8') as file:
content = file.read()
print(content)
Ví dụ sử dụng read(size):
with open('data.txt', encoding='utf-8') as file:
chunk = file.read(3)
print(chunk, end='')
Ví dụ sử dụng readline():
with open('data.txt', encoding='utf-8') as file:
line1 = file.readline()
print(line1, end='')
line2 = file.readline()
print(line2, end='')
line3 = file.readline()
print(line3, end='')
Ví dụ sử dụng readlines():
with open('config.txt') as file:
lines = file.readlines()
for line in lines:
print(line.strip()) # Xóa ký tự xuống dòng
print(lines)
2. Ghi tệp tin
Các chế độ ghi phổ biến:
'w': Chỉ ghi. Xóa nội dung cũ (nếu tệp tồn tại) hoặc tạo mới nếu chưa có. Ghi nhiều lần trên cùng đối tượng sẽ nối tiếp, không ghi đè.'a': Chỉ ghi. Tạo mới nếu chưa tồn tại, nếu có thì nối thêm vào cuối.'r+': Đọc và ghi. Nếu tệp không tồn tại, báo lỗi. Khi ghi, ghi đè lên nội dung cũ theo số ký tự. Ghi nhiều lần sẽ nối tiếp.'w+': Đọc và ghi. Xóa nội dung cũ hoặc tạo mới.'a+': Đọc và ghi. Nối thêm hoặc tạo mới nếu chưa tồn tại.
Ví dụ với chế độ 'w':
with open('data.txt', 'w') as file:
count1 = file.write('hello')
count2 = file.write('world')
print(count1, count2)
Ví dụ với chế độ 'w+':
text1 = "Hello, everyone. I'm a Python programmer. "
text2 = "If哈哈ffams"
with open("output.txt", "w+", encoding='utf-8') as file:
file.write(text1)
file.write(text2)
file.seek(0)
content = file.read()
print(content)
Ví dụ với chế độ 'a+':
file = open('log.txt', 'a+')
file.seek(0) # seek chỉ ảnh hưởng đến đọc
bytes_written = file.write('new data')
file.seek(0)
content = file.read()
print(content, end='')
file.close()
3. Lưu ý quan trọng
Đối với tệp nhị phân như ảnh, âm thanh, sử dụng các chế độ sau:
'rb': Đọc dưới dạng nhị phân.'wb': Ghi dưới dạng nhị phân.'ab': Nối thêm dưới dạng nhị phân.
Các chế độ này sẽ được giải thích chi tiết trong các bài học về mạng.