Bạn có thể sử dụng
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
6 để tạo và ghi vào tệp văn bản, nếu tệp có tên 2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
7 đã tồn tại, nó sẽ không tạo một tệp mới nhưng nó tìm thấy tệp đó và ghi cho nó. Để bắt đầu ghi vào tệp, chỉ cần sử dụng 2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
8. Khi hoàn thành, sử dụng 2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
9 để đóng tệp.Là một câu trả lời cho câu hỏi của bạn, bạn có thể tạo một hàm ghi lại mật khẩu được cung cấp cho nó vào một tệp văn bản. Tôi đã tạo chức năng sau để ghi mật khẩu vào tệp văn bản:
from datetime import datetime
def logPassword[password, filename]:
f = open[filename, "a"]
f.write["{0} -- {1}\n".format[datetime.now[].strftime["%Y-%m-%d %H:%M"], password]]
f.close[]
Hàm ghi ngày, thời gian và mật khẩu theo định dạng sau vào tệp TXT:
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
0 trong hàmCode language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
1 có nghĩa là bạn đang nối vào tệp văn bản để không có gì trong tệp sẽ bị ghi đè.Code language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
Để sử dụng chức năng này trong mã của bạn, chỉ cần gọi nó khi xác thực mật khẩu.
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
2 thành một chuỗi:Code language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
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
3.
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
- Thứ hai, đọc văn bản từ tệp văn bản bằng phương thức Tệp
4,
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
5 hoặc
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
6 của đối tượng tệp.
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
- Thứ ba, đóng tệp bằng phương thức tệp
7.
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
1] hàm
Hàm
3 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]
with open['readme.txt'] as f: lines = f.readlines[]
Code language: Python [python]
open[path_to_file, mode]
Tham số
9 chỉ định đường dẫn đến tệp văn bản.Code language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
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 điểm nhanh [
0] ngay cả khi bạn làm việc trên Windows.Code language: Python [python]
open[path_to_file, mode]
Ví dụ: nếu tệp
2 được lưu trong thư mụcCode language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
2 làm chương trình, bạn cần chỉ định đường dẫn đến tệp làCode language: Python [python]
open[path_to_file, mode]
3Code language: Python [python]
open[path_to_file, mode]
4 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]
open[path_to_file, mode]
5 | Mở cho tệp văn bản để đọc văn bản |
6 | Mở tệp văn bản để viết văn bản |
7 | 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
8 đượ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]
open[path_to_file, mode]
Code language: Python [python]
f = open['the-zen-of-python.txt','r']
Hàm
3 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]
with open['readme.txt'] as f: lines = f.readlines[]
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:
0 - Đọ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 = open['the-zen-of-python.txt','r']
4 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]with open['readme.txt'] as f: lines = f.readlines[]
4 & nbsp; trả về một chuỗi trống.
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
5 - Đọ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, ____ 25 & nbsp; trả về một chuỗi trống.
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
6 - Đọ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]with open['readme.txt'] as f: lines = f.readlines[]
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
7.Code language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
Đ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
7 để đóng tệp:Code language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
Code language: Python [python]
f.close[]
Để tự động đóng tệp mà không cần gọi phương thức
7, bạn sử dụng câu lệnhCode language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
9 như thế này:Code language: Python [python]
f = open['the-zen-of-python.txt','r']
Code language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
Trong thực tế, bạn sẽ sử dụng câu lệnh
9 để tự động đóng tệp.Code language: Python [python]
f = open['the-zen-of-python.txt','r']
Đọ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
4 để đọc tất cả các nội dung của tệpCode language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
8 thành một chuỗi:Code language: Python [python]
open[path_to_file, mode]
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
6 để đọ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]
with open['readme.txt'] as f: lines = f.readlines[]
Code language: Python [python]
with open['the-zen-of-python.txt'] as f: [print[line] for line in f.readlines[]]
Output:
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
0Lý 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
4. Ví dụ:Code language: Python [python]
f.close[]
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
1Ví dụ sau đây cho thấy cách sử dụng
5 để đọc từng dòng tệp văn bản:
with open['readme.txt'] as f: lines = f.readlines[]
Code language: Python [python]
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
2Output:
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
3Mộ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
3 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]
with open['readme.txt'] as f: lines = f.readlines[]
7 để lặp lại các dòng của tệp văn bản như sau:Code language: Python [python]
f.close[]
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
4Đâ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
8 cho hàmCode language: Python [python]
f.close[]
3 để hướng dẫn nó mong đợi các ký tự UTF-8 từ tệp.Code language: Python [python]
with open['readme.txt'] as f: lines = f.readlines[]
Để trình diễn, bạn sẽ sử dụng tệp
0 sau đây chứa một số trích dẫn bằng tiếng Nhật.Code language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
Những điều sau đây cho thấy cách lặp qua tệp
0:Code language: Python [python]
with open[path_to_file] as f: contents = f.readlines[]
2019-04-18 09:58 -- test1
2019-04-18 09:58 -- test2
2019-04-18 09:58 -- test3
5Output:
Bản tóm tắt
- Sử dụng chức năng
3 với chế độ
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
5 để mở tệp văn bản để đọc.
Code language: Python [python]open[path_to_file, mode]
- Sử dụng phương thức
4,
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
5 hoặc
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
6 để đọc tệp văn bản.
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
- Luôn đóng một tệp sau khi hoàn thành đọc nó bằng phương thức
7 hoặc câu lệnh
Code language: Python [python]with open['readme.txt'] as f: lines = f.readlines[]
9.
Code language: Python [python]f = open['the-zen-of-python.txt','r']
- Sử dụng
8 để đọc tệp văn bản UTF-8.
Code language: Python [python]f.close[]
Bạn có thấy hướng dẫn này hữu ích không?