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 dấu gạch chéo lên [_______0_______2] ngay cả khi bạn đang làm việc trên Windows
Ví dụ, nếu tệp
4 được lưu trong thư mụcCode language: Python [python]
open[path_to_file, mode]
4 như 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. Đó là 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ế độ khả dụng để mở tệp văn bảnChế độ Mô tảCode language: Python [python]
f = open['the-zen-of-python.txt','r']
7Mở tệp văn bản để đọc văn bảnCode language: Python [python]
f = open['the-zen-of-python.txt','r']
8Mở tệp văn bản để viết văn bảnCode language: Python [python]
f = open['the-zen-of-python.txt','r']
9Mở tệp văn bản để nối thêm văn bảnCode language: Python [python]
f = open['the-zen-of-python.txt','r']
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 đoạn mã sauCode 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ảnCode language: Python [python]
open[path_to_file, mode]
2] Phương pháp đọ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 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ó dừng lại cho đến hết tệp. Nếu đã đến cuối tệp, phương thức
Code language: Python [python]open[path_to_file, mode]
6 trả về một chuỗi trống
Code language: Python [python]open[path_to_file, mode]
7 – đọc một dòng từ tệp văn bản và trả về dòng đó dưới dạng chuỗi. Nếu đã đến cuối tệp, thì hàm
Code language: Python [python]open[path_to_file, mode]
7 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 thành một danh sách các chuỗi. Phương pháp này hữu ích nếu bạn có một tệp nhỏ và bạn muốn thao tác với 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 close[]
Tệp mà bạn mở sẽ vẫn mở cho đến khi bạn đóng tệp bằng phương pháp
9Code 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 tệp đó lại để không chương trình hoặc tập lệnh nào khác có thể sử dụng tệp đó cho đến khi bạn đóng tệp đó
- Thứ hai, hệ thống tệp của bạn có một số bộ mô tả tệp giới hạn mà bạn có thể tạo trước khi hết chúng. Mặc dù con số này có thể cao, nhưng có thể mở 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, để mở nhiều tệp có thể dẫn đến tình trạng chạy đua xảy ra khi nhiều quy trình cố gắng sửa đổi một tệp cùng lúc và có thể gây ra tất cả các loại hành vi không mong muốn
Sau đây trình bày cách gọi phương thức
9 để đóng tệp________số 8_______Code language: Python [python]
open[path_to_file, mode]
Để đóng file tự động 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àyCode 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 để đóng tệp tự độngCode language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
Đọc ví dụ về tệp văn bản
Chúng tôi sẽ sử dụng-zen-of-python. txt để trình diễn
Ví dụ sau minh họa cách sử dụng phương thức
6 để đọc tất cả nội dung của tệpCode language: Python [python]
open[path_to_file, mode]
0 thành một chuỗiCode language: Python [python]
f.close[]
Code language: Python [python]
with open['the-zen-of-python.txt'] as f: contents = f.read[] print[contents]
đầu ra
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 dưới dạng danh sách các chuỗiCode 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[]]
đầu ra
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à vì mỗi dòng trong tệp văn bản có một ký tự xuống dòng [\n]. Để xóa 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ệp văn bản theo từng dòngCode language: Python [python]
open[path_to_file, mode]
0Code language: Python [python]
open[path_to_file, mode]
đầu ra
1Code language: Python [python]
open[path_to_file, mode]
Một cách ngắn gọn hơn để đọc từng dòng tệp văn bản
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 qua các dòng của tệp văn bản như sauCode language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
2Code language: Python [python]
open[path_to_file, mode]
Đây là một cách ngắn gọn hơn để đọc từng dòng tệp văn bản
Đọc tệp văn bản UTF-8
Mã trong các ví dụ trước hoạt động tốt với tệp văn bản ASCII. Tuy nhiên, nếu bạn đang 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ó khả năng là một tệp UTF-8 sử dụng nhiều thứ hơn là chỉ 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 hàmCode 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ệpCode language: Python [python]
open[path_to_file, mode]
Để trình diễn, bạn sẽ sử dụng tệp
2 sau đây có chứa một số trích dẫn bằng tiếng NhậtCode language: Python [python]
with open['the-zen-of-python.txt'] as f: contents = f.read[] print[contents]