Bài 11 – Làm việc với kiểu dữ liệu tệp trong ngôn ngữ lập trình Python
1. Tìm hiểu về kiểu tệp
– Tệp (file) hay còn gọi là tập tin dùng để chứa các thông tin được đặt tên và lưu trữ trên bộ nhớ máy tính như đĩa cứng, USB, thẻ nhớ, CD, DVD,…
– Ký tự lưu trong tệp không chỉ theo mã ASCII mà còn có thể mà mã Unicode
– Khi muốn đọc/ ghi dữ liệu vào tệp ta phải mở tệp trước và sau khi thao tác xong với tệp ta phải đóng tệp để giải phóng bộ nhớ.
2. Thao tác với tệp
a. Mở tệp
Cách 1:
<tên biến tệp> = open(<tên tệp>,<kiểu mở>)
Cách 2:
with open(<tên tệp>,<kiểu mở>) as <tên biến>
Trong đó, <kiểu mở> có thể dùng các kiểu sau:
Kiểu mở | Mô tả |
r | Mở file chỉ để đọc. |
r+ | Mở file để đọc và ghi. |
w | Tạo một file mới để ghi, nếu file đã tồn tại thì sẽ bị ghi mới. |
w+ | Tạo một file mới để đọc và ghi, nếu file tồn tại thì sẽ bị ghi mới. |
a | Mở file để ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để ghi mới. |
a+ | Mở file để đọc và ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để đọc và ghi mới. |
Ngoài ra, Python còn hỗ trợ các kiểu mở chế độ nhị phân như: rb, rb+, wb, wb+, ab, ab+.
b. Đọc tệp
– Đọc từng dòng: <tên biến> = <tên biến tệp>.readline()
– Đọc theo từng dòng đến hết: for <tên biến> in <tên biến tệp>: print(<tên biến>,end=“”)
– Đọc toàn bộ tệp: <tên biến> = <tên biến tệp>.read()
Lưu ý: Dữ liệu đọc từ tệp luôn là kiểu dữ liệu xâu
c. Ghi dữ liệu vào tệp
– Cú pháp:
<tên biến tệp>.write(<nội dung cần ghi>)
– Lưu ý: <nội dung cần ghi> phải là kiểu xâu
d. Đóng tệp
– Cú pháp: <tên biến tệp>.close()
– Lưu ý: Sau khi thao tác với tệp xong ta nên đóng tệp để giải phóng tài nguyên
3. Ví dụ làm việc với tệp
Bài 1: Viết chương trình tính tổng các số lẻ trong tệp DATA.INP gồm 1 dòng duy nhất chứa dãy các số nguyên dương cách nhau bởi dấu cách. Xuất kết quả ra tệp DATA.OUT
Bài 2: Viết chương trình lọc các số ở văn bản gồm có nhiều dòng trong tệp DATA.INP và xuất ra tệp DATA.OUT gồm dãy các số của từng dòng tương ứng ở trong tệp DATA.INP
Xem tiếp Bài 12 – Lập trình hướng đối tượng trong ngôn ngữ lập trình Python