Đọc ghi file trong Python

This entry is part 22 of 29 in the series Python Không Khó

Đọc ghi file trong Python hoặc trong bất kỳ ngôn ngữ nào khác là một thao tác thường xuyên được sử dụng trong quá trình làm việc. Bài viết này sẽ hướng dẫn bạn chi tiết cách đọc file trong Python và ghi file trong Python. Ngoài ra, mình cũng sẽ chia sẻ cách đọc ghi cấu trúc từ điển ra file JSON.

Đọc ghi file trong Python

Quá trình đọc ghi file trong Python trải qua 3 bước: Mở file, Đọc hoặc ghi file và cuối cùng là đóng file. Nhưng đầu tiên, chúng ta sẽ xem xét các mode khi làm việc với file trong Python nhé.

Mode truy cập tệp trong Python

Khá giống với các ngôn ngữ khác, việc đọc ghi file trong Python cũng có các mode làm việc tương ứng.

Mode Giải thích
Read Only (‘r’) Mode mặc định khi mở tệp. Ở chế độ này, tệp được mở ở chế độ chỉ được phép đọc dữ liệu và con trỏ tệp bắt đầu ở vị trí đầu tệp. Nếu tệp không tồn tại, sẽ gặp ngoại lệ FileNotFoundError.
Read & Write (‘r+’) Mở file cho phép cả đọc và ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ gặp ngoại lệ FileNotFoundError.
Write Only (‘w’) Mở file và chỉ cho phép ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ tự động tạo mới. Nếu tệp đã tồn tại, dữ liệu cũ sẽ bị ghi đè bằng dữ liệu mới.
Write & Read (‘w+’) Mở file cho phép cả đọc và ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ tự động tạo mới. Nếu tệp đã tồn tại, dữ liệu cũ sẽ bị ghi đè bằng dữ liệu mới.
Append Only (‘a’) Mở file cho phép ghi. File sẽ được tạo mới nếu chưa tồn tại. Con trỏ tệp sẽ ở cuối file nên sẽ tiếp tục ghi dữ liệu vào cuối nếu ban đầu đã có dữ liệu.
Append & Read (‘a+’) Mở file cho phép ghi và đọc. File sẽ được tạo mới nếu chưa tồn tại. Con trỏ tệp sẽ ở cuối file nên sẽ tiếp tục ghi dữ liệu vào cuối nếu ban đầu đã có dữ liệu.

Mở file trong Python

Để mở file trong Python, chúng ta không cần phải import thêm thư viện nào cả, chúng ta sẽ sử dụng hàm open() built-in có cú pháp như sau:

Lưu ý: Ký tự r trước đường dẫn tới file giúp bỏ qua các ký tự đặc biệt của string trong Python. Chẳng hạn, nếu không có ký tự r này thì \t trong đường dẫn D:\text\myfile.txt này sẽ bị coi là dấu tab, dẫn tới xảy ra lỗi không mong muốn.

Ví dụ:

Đóng file trong Python

Sử dụng hàm close() để đóng đối tượng tệp khi bạn đã làm việc xong với nó. Hãy luôn nhớ đóng file sau khi làm việc xong nếu không muốn phát sinh các vấn đề không mong muốn.

Ví dụ:

[sc_box]

Một cách linh hoạt hơn (nên dùng) khi làm việc với file mà không cần phải lo khi nào đóng file. Hãy sử dụng từ khóa with như sau:

[/sc_box]

Đọc file trong Python

Python cung cấp cho bạn 3 cách khác nhau để đọc nội dung từ tập tin. Mình sẽ đi trực tiếp vào ví dụ để các bạn có thể hiểu & áp dụng được ngay

Đọc toàn bộ file ra string

Sử dụng hàm read() để đọc toàn bộ nội dung file vào 1 biến string.

Kết quả nhận được (cũng chính là nội dung file data.txt):

Đọc từng dòng của file

Sử dụng hàm readline() sẽ trả về 1 dòng nội dung của file. Chúng ta có thể duyệt qua từng dòng nội dung của file như sau:

Kết quả:

Hàm readline() sẽ đọc 1 dòng, bao gồm cả ký tự newline (‘\n’). Nên khi in ra, mỗi dòng có thể 1 dòng trống ở phía dưới như kết quả ở trên.

Đọc toàn bộ file ra list

Vẫn là đọc toàn bộ file nhưng hàm readlines() sẽ trả về một list tương ứng mỗi dòng dữ liệu là 1 phần tử của list.

Kết quả:

Lưu ý: Bạn có thể dùng hàm strip() để xóa khoảng trắng thừa ở đầu & cuối string. Và ký tự newline ở cuối mỗi string cũng được coi là 1 khoảng trắng thừa.

Ghi file trong Python

Để ghi file trong Python, chúng ta có thể sử dụng hàm write() để ghi 1 biến string, hoặc dùng writelines() để ghi 1 list các chuỗi string.

Hoặc:

[sc_alert]Hàm wirtelines() không tự động chèn thêm \n vào cuối mỗi dòng. Nên nếu chạy code trên thì các dòng sẽ ghi liền nhau thành 1 dòng duy nhất.[/sc_alert]

Ghi dữ liệu vào cuối file

Chúng ta chỉ cần đổi mode từ w sang a là được. Xem ví dụ:

Kết quả:

[sc_]

Đọc ghi JSON từ file

Trong phần này, chúng ta sẽ làm việc với tệp tin JSON sử dụng ngôn ngữ Python. Giả sử chúng ta có file JSON như sau:

Đọc ghi file trong Python

Cách đọc file JSON

Kết quả:

Ghi dữ liệu từ điển ra file JSON

Lưu ý:

  • Với dữ liệu tiếng Việt, hàm dump()dumps() sẽ đưa toàn bộ về bảng mã ASCII. Do đó, nếu bạn muốn đọc được file JSON khi mở bằng Editor, thêm option ensure_ascii = False.
  • Nếu muốn làm đẹp file JSON, hãy thêm option indent=2 vào hàm dump() nhé. Trong đó, 2 số lượng dấu cách (space) dùng để format tệp tin.

Kết quả:

Đọc ghi file trong Python

 

Như vậy, bài viết đã trình bày các nội dung cần thiết đến bạn đọc về nội dung đọc ghi file trong Python. Với những kiến thức căn bản này, bạn hoàn toàn có thể sử dụng đáp ứng yêu cầu trong công việc rồi. Chúc các bạn học tập tốt!

Tham gia nhóm Lập Trình Không Khó nhé: https://www.facebook.com/groups/1023125804557712/

Similar Posts

Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments