Tóm tắt: Trong hướng dẫn này, bạn tìm hiểu nhiều cách khác nhau để đọc các tệp văn bản bằng Python.: in this tutorial, you learn various ways to read text files in Python.
TL;DR
Những điều sau đây cho thấy cách đọc tất cả các văn bản từ tệp
4 thành một chuỗi:Code language: Python [python]
open[path_to_file, mode]
Code language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
Các bước để đọc tệp văn bản trong Python
Để đọc một tệp văn bản trong Python, bạn làm theo các bước sau:
- Đầu tiên, hãy mở một tệp văn bản để đọc bằng cách sử dụng hàm
5.
Code language: Python [python]open[path_to_file, mode]
- Thứ hai, đọc văn bản từ tệp văn bản bằng phương thức tệp
6,
Code language: Python [python]open[path_to_file, mode]
7 hoặc
Code language: Python [python]open[path_to_file, mode]
8 của đối tượng tệp.
Code language: Python [python]open[path_to_file, mode]
- Thứ ba, đóng tệp bằng phương thức tệp
9.
Code language: Python [python]open[path_to_file, mode]
1] hàm
Hàm
5 có nhiều tham số nhưng bạn sẽ tập trung vào hai tham số đầu tiên:Code language: Python [python]
open[path_to_file, mode]
Code language: Python [python]
open[path_to_file, mode]
Tham số
1 chỉ định đường dẫn đến tệp văn bản.Code language: Python [python]
f = open['the-zen-of-python.txt','r']
Nếu chương trình và tệp nằm trong cùng một thư mục, bạn chỉ cần chỉ định tên tệp của tệp. Nếu không, bạn cần bao gồm đường dẫn đến tệp cũng như tên tệp.
Để chỉ định đường dẫn đến tệp, bạn sử dụng slash phía trước [
2] ngay cả khi bạn làm việc trên Windows.Code language: Python [python]
f = open['the-zen-of-python.txt','r']
Ví dụ: nếu tệp
4 được lưu trữ trong thư mụcCode language: Python [python]
open[path_to_file, mode]
4 làm chương trình, bạn cần chỉ định đường dẫn đến tệp làCode language: Python [python]
f = open['the-zen-of-python.txt','r']
5Code language: Python [python]
f = open['the-zen-of-python.txt','r']
6 là một tham số tùy chọn. Nó có một chuỗi chỉ định chế độ mà bạn muốn mở tệp. Bảng sau đây hiển thị các chế độ có sẵn để mở tệp văn bản:Code language: Python [python]
f = open['the-zen-of-python.txt','r']
7 | Mở cho tệp văn bản để đọc văn bản |
8 | Mở tệp văn bản để viết văn bản |
9 | Mở tệp văn bản để nối thêm văn bản |
Ví dụ: để mở một tệp có tên là
0 được lưu trữ trong cùng thư mục với chương trình, bạn sử dụng mã sau:Code language: Python [python]
f.close[]
Code language: Python [python]
f = open['the-zen-of-python.txt','r']
Hàm
5 trả về một đối tượng tệp mà bạn sẽ sử dụng để đọc văn bản từ tệp văn bản.Code language: Python [python]
open[path_to_file, mode]
2] Đọc phương thức văn bản
Đối tượng tệp cung cấp cho bạn ba phương thức để đọc văn bản từ tệp văn bản:
2 - Đọc một số nội dung của một tệp dựa trên kích thước tùy chọn và trả về nội dung dưới dạng chuỗi. Nếu bạn bỏ qua kích thước, phương thức
Code language: Python [python]f.close[]
6 sẽ đọc từ nơi nó rời đi cho đến khi kết thúc tệp. Nếu kết thúc của một tệp đã đạt được, phương thức
Code language: Python [python]open[path_to_file, mode]
6 & nbsp; trả về một chuỗi trống.
Code language: Python [python]open[path_to_file, mode]
7 - Đọc một dòng từ một tệp văn bản và trả về dòng dưới dạng chuỗi. Nếu kết thúc của một tệp đã đạt được, ____ 17 & nbsp; trả về một chuỗi trống.
Code language: Python [python]open[path_to_file, mode]
8 - Đọc tất cả các dòng của tệp văn bản vào một danh sách các chuỗi. Phương pháp này rất hữu ích nếu bạn có một tệp nhỏ và bạn muốn thao tác toàn bộ văn bản của tệp đó.
Code language: Python [python]open[path_to_file, mode]
3] Phương thức đóng []
Tệp mà bạn mở sẽ vẫn mở cho đến khi bạn đóng nó bằng phương thức
9.Code language: Python [python]
open[path_to_file, mode]
Điều quan trọng là phải đóng tệp không còn được sử dụng vì những lý do sau:
- Đầu tiên, khi bạn mở một tệp trong tập lệnh của mình, hệ thống tệp thường khóa nó xuống để không có chương trình hoặc tập lệnh nào khác có thể sử dụng nó cho đến khi bạn đóng nó.
- Thứ hai, hệ thống tệp của bạn có số lượng mô tả tệp hạn chế mà bạn có thể tạo trước khi hết chúng. Mặc dù số này có thể cao, nhưng nó có thể mở rất nhiều tệp và làm cạn kiệt tài nguyên hệ thống tệp của bạn.
- Thứ ba, việc để nhiều tệp mở có thể dẫn đến các điều kiện chủng tộc xảy ra khi nhiều quy trình cố gắng sửa đổi một tệp cùng một lúc và có thể gây ra tất cả các loại hành vi bất ngờ.
Sau đây cho thấy cách gọi phương thức
9 để đóng tệp:Code language: Python [python]
open[path_to_file, mode]
Code language: Python [python]
f.close[]
Để tự động đóng tệp mà không cần gọi phương thức
9, bạn sử dụng câu lệnhCode language: Python [python]
open[path_to_file, mode]
1 như thế này:Code language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
with open[path_to_file] as f: contents = f.readlines[]
Code language: Python [python]
Trong thực tế, bạn sẽ sử dụng câu lệnh
1 để tự động đóng tệp.Code language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
Đọc một ví dụ về tệp văn bản
Chúng tôi sẽ sử dụng tệp-zen-of-python.txt để trình diễn.
Ví dụ sau đây minh họa cách sử dụng phương thức
6 để đọc tất cả các nội dung của tệpCode language: Python [python]
open[path_to_file, mode]
0 thành một chuỗi:Code language: Python [python]
f.close[]
Code language: Python [python]
with open['the-zen-of-python.txt'] as f: contents = f.read[] print[contents]
Output:
Code language: Python [python]
Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. ...
Ví dụ sau sử dụng phương thức
8 để đọc tệp văn bản và trả về nội dung tệp làm danh sách các chuỗi:Code language: Python [python]
open[path_to_file, mode]
Code language: Python [python]
with open['the-zen-of-python.txt'] as f: [print[line] for line in f.readlines[]]
Output:
Code language: Python [python]
Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. ...
Lý do bạn thấy một dòng trống sau mỗi dòng từ một tệp là mỗi dòng trong tệp văn bản có ký tự dòng mới [\ n]. Để loại bỏ dòng trống, bạn có thể sử dụng phương thức
6. Ví dụ:Code language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
Code language: Python [python]
with open['the-zen-of-python.txt'] as f: [print[line.strip[]] for line in f.readlines[]]
Ví dụ sau đây cho thấy cách sử dụng
7 để đọc từng dòng tệp văn bản:Code language: Python [python]
open[path_to_file, mode]
0Code language: Python [python]
open[path_to_file, mode]
Output:
1Code language: Python [python]
open[path_to_file, mode]
Một cách ngắn gọn hơn để đọc một dòng tệp văn bản từng dòng
Hàm
5 trả về một đối tượng tệp là một đối tượng có thể lặp lại. Do đó, bạn có thể sử dụng vòng lặpCode language: Python [python]
open[path_to_file, mode]
9 để lặp lại các dòng của tệp văn bản như sau:
with open[path_to_file] as f: contents = f.readlines[]
Code language: Python [python]
2Code language: Python [python]
open[path_to_file, mode]
Đây là một cách ngắn gọn hơn để đọc một dòng tệp văn bản từng dòng.
Đọc các tệp văn bản UTF-8
Mã trong các ví dụ trước hoạt động tốt với các tệp văn bản ASCII. Tuy nhiên, nếu bạn xử lý các ngôn ngữ khác như tiếng Nhật, tiếng Trung và tiếng Hàn, tệp văn bản không phải là tệp văn bản ASCII đơn giản. Và nó có thể là một tệp UTF-8 sử dụng nhiều hơn chỉ là các ký tự văn bản ASCII tiêu chuẩn.
Để mở tệp văn bản UTF-8, bạn cần chuyển
0 cho chức năngCode language: Python [python]
with open['the-zen-of-python.txt'] as f: contents = f.read[] print[contents]
5 để hướng dẫn nó mong đợi các ký tự UTF-8 từ tệp.Code language: Python [python]
open[path_to_file, mode]
Để trình diễn, bạn sẽ sử dụng tệp
2 sau đây chứa một số trích dẫn bằng tiếng Nhật.Code language: Python [python]
with open['the-zen-of-python.txt'] as f: contents = f.read[] print[contents]
Những điều sau đây cho thấy cách lặp qua tệp
2:Code language: Python [python]
with open['the-zen-of-python.txt'] as f: contents = f.read[] print[contents]
3Code language: Python [python]
open[path_to_file, mode]
Output:
Bản tóm tắt
- Sử dụng chức năng
5 với chế độ
Code language: Python [python]open[path_to_file, mode]
7 để mở tệp văn bản để đọc.
Code language: Python [python]f = open['the-zen-of-python.txt','r']
- Sử dụng phương thức
6,
Code language: Python [python]open[path_to_file, mode]
7 hoặc
Code language: Python [python]open[path_to_file, mode]
8 để đọc tệp văn bản.
Code language: Python [python]open[path_to_file, mode]
- Luôn đóng một tệp sau khi hoàn thành đọc nó bằng phương thức
9 hoặc câu lệnh
Code language: Python [python]open[path_to_file, mode]
1.
Code language: Python [python]with open[path_to_file] as f: contents = f.readlines[]
- Sử dụng
0 để đọc tệp văn bản UTF-8.
Code language: Python [python]with open['the-zen-of-python.txt'] as f: contents = f.read[] print[contents]
Bạn có thấy hướng dẫn này hữu ích không?