Mở tập tin ví dụ.
afile = open["filename.txt"] afile.close[] afile = open["filename.txt", "w"] // In read mode afile.close[] afile = open["filename.txt", "r"] // In write mode afile.close[] afile = open["filename.txt"], "wb"] // In binary write mode afile.close[] afile = open["filename.txt"], "rb"] // In binary read mode afile.close[]Đọc một tập tin
Đoạn mã sau đọc
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]
Đọc một số ký tự
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]
Ví dụ đọc một tập tin
Phần sau đây đọc các đoạn gồm bốn ký tự
file = open["file. txt", "r"]
cho tôi trong phạm vi[21].
in[tệp. đã đọc[4]]
tệp. đóng[]
Các chuỗi rỗng sẽ được trả về sau khi kết thúc sẽ đạt được
Đọc các dòng từ tệp văn bản
Các đoạn mã sau đọc một tệp vào danh sách chuỗi
file.open[file.txt] print[file.readlines[]] file.close[]Viết tập tin
Một tập tin sẽ được tạo nếu nó chưa tồn tại.
Nội dung của tệp hiện có sẽ bị xóa.
file.open["file.txt","w"] file.write["Write this text to the file"] file.close[]
Theo dõi byte được ghi
text = "Hello world" file.open["file.txt","w"] amount_bytes = file.write[text] print[amount_bytes] file.close[]
Sử dụng câu lệnh "with"
with open["file.txt"] as f: printf[f.read[]]
- Phiên bản thân thiện với máy in
- Thêm nhận xét mới
- 45 lượt xem
Liên kết duyệt sách để làm việc với tệp [Cheat Sheet]
- ‹ Tuples [Cheat Sheet]
- Lên
Hướng dẫn ngắn này không nhằm mục đích trình bày mọi thứ về cách đọc và ghi tệp bằng Python. Thay vào đó, tôi chỉ muốn chia sẻ với bạn một số cheat sheet mà tôi đã tạo để đọc và ghi tệp trong lập trình Python hàng ngày của mình
Chỉ cần lưu ý một số lời nhắc về vệ sinh trước khi chúng ta tiếp tục
- Mã được trình bày ở đây được viết bằng Python 3. 7. 3 và không phải lúc nào cũng áp dụng cho các phiên bản Python cũ hơn
- Chúng tôi sẽ tập trung vào các phương pháp tích hợp sẵn như một phần của gói tiêu chuẩn để chúng tôi không cần phải xử lý việc cài đặt các gói của bên thứ ba không nhất thiết phải đơn giản cho người mới bắt đầu
- Bạn có thể chọn bất kỳ IDE Python nào bạn thích. Đối với tôi, tôi sử dụng Visual Studio Code và Mac's Terminal để chạy mã của mình nếu có
TL; DR
Dưới đây là hai bảng gian lận nhanh như là bài học cho bài viết này. Trang đầu tiên liệt kê các phương thức/chức năng chính liên quan đến việc đọc và ghi tệp sẽ được thảo luận trong bài viết này
Trang thứ hai liệt kê các chế độ mở phổ biến được sử dụng khi mở tệp để thực hiện thao tác đọc/ghi thích hợp
Bảng gian lận 1. Các phương thức/chức năng chínhMở tệp tin
mở[]
Bước đầu tiên để xử lý tệp trong Python là mở tệp. Để làm điều đó, bạn chỉ cần sử dụng phương thức
>>> open['python_test_file.txt', 'r']
1, phương thức này sẽ tạo một đối tượng tệp. Cụ thể, phương thức này có một bộ tham số để đọc tệp, nhưng hai đối số được sử dụng nhiều nhất là tên tệp và chế độ.Giả sử rằng chúng ta có tệp văn bản sau tên là
>>> open['python_test_file.txt', 'r']
2 cho mục đích của hướng dẫn này. Bạn có thể tạo một cái như bên dưới trong thư mục làm việc Python của mình nếu bạn muốn thử các phương pháp này trong khi làm theo hướng dẫn này0 Start Line 0 - Line 0 End 0
1 Start Line 1 - Line 1 End 1
Để mở tệp này, chúng ta chỉ cần gọi phương thức
>>> open['python_test_file.txt', 'r']
1 như bên dưới. Chúng tôi đã chỉ định tên tệp và chế độ mở. Như bạn có thể thấy từ Terminal, một đối tượng tệp hoặc luồng văn bản [i. e. >>> open['python_test_file.txt', 'r']
4] được tạo>>> open['python_test_file.txt', 'r']
Danh sách trên [tôi. e. , cheat sheet 2] tổng hợp các chế độ mở phổ biến cùng mục đích sử dụng. Nếu chế độ mở bị bỏ qua, chế độ mặc định sẽ là
>>> open['python_test_file.txt', 'r']
5Để mở tệp ở chế độ nhị phân, bạn cần thêm chữ cái
>>> open['python_test_file.txt', 'r']
6 vào sau chế độ được liệt kê ở trên [e. g. , >>> open['python_test_file.txt', 'r']
7, >>> open['python_test_file.txt', 'r']
8]. Nên sử dụng chế độ nhị phân khi tệp không chứa văn bảnvới từ khóa
Chúng tôi có thể sử dụng từ khóa
>>> open['python_test_file.txt', 'r']
9 khi tệp được mởViệc sử dụng từ khóa
>>> open['python_test_file.txt', 'r']
9 cho phép tệp được đóng tự động đúng cách sau khi hoàn thành bộ phần mềm, ngay cả khi một ngoại lệ được đưa ra trong quá trình nàyfile = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]9
Trong đoạn mã trên, một vài điều đáng chú ý
- Khi đối số chế độ bị bỏ qua, tệp văn bản được đọc ở chế độ văn bản và phần cuối của dòng được chuyển đổi thành
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]
91 - Sử dụng từ khóa
>>> open['python_test_file.txt', 'r']
9, đối tượng tệp được đóng như mong đợi
Đọc một tập tin
đọc[]
Như bạn có thể biết, chúng tôi đã sử dụng phương pháp
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]93 vừa rồi. Trong phương pháp này, bạn có thể chỉ định kích thước mà bạn muốn đọc từ đối tượng tệp
Khi đối số
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]94 bị bỏ qua hoặc được đặt thành số âm hoặc được đặt thành số nguyên lớn hơn kích thước tệp, tất cả nội dung tệp sẽ được đọc
Chúng tôi cũng có thể chỉ định kích thước nhỏ hơn kích thước tệp. Trong ví dụ dưới đây, bằng cách chỉ định kích thước là 5, chỉ 5 ký tự đầu tiên sẽ được đọc cho tệp văn bản
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]4
Nếu đến cuối tệp sau khi đọc, một chuỗi trống [
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]95] sẽ được trả về
Đối với ví dụ dưới đây, một chuỗi rỗng được trả về bởi phương thức
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]93 thứ hai, vì lệnh gọi đầu tiên đã hoàn thành việc đọc toàn bộ tệp
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]7
dòng đọc []
Chúng tôi cũng có thể đọc các dòng riêng lẻ bằng cách sử dụng phương pháp
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]97. Phương thức này sẽ đọc văn bản cho toàn bộ dòng bao gồm cả dòng kết thúc [i. e. ,
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]91]
Tuy nhiên,
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]91 sẽ bị bỏ qua ở dòng cuối cùng của tệp, nếu tệp không kết thúc bằng một dòng mới. Khi đọc đến cuối tệp, một chuỗi rỗng sẽ được trả về
Nếu bạn gọi phương thức
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]97 nhiều lần, việc đọc sẽ được tiếp tục tại nơi nó được đọc lần trước
Trên thực tế, phương thức
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]97 cũng có thể nhận tham số
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]94, tham số này sẽ được sử dụng làm giới hạn cho việc đọc dòng
Trong đoạn mã bên dưới,
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]43 và
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]44 sẽ chỉ đọc 2 và 5 ký tự tương ứng. Một lần nữa, việc đọc được tiếp tục ở nơi nó được đọc lần trước
Một điều nữa cần lưu ý là một dòng trống được trả về là
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]45 — một chuỗi chỉ chứa một dòng mới
đường đọc []
Nếu bạn muốn đọc tất cả các dòng bằng một phương pháp duy nhất, bạn có thể sử dụng
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]46, phương thức này sẽ tạo danh sách các dòng riêng lẻ
file.open[file.txt] print[file.readlines[]] file.close[]8
Phương pháp
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]46 cũng có thể tùy chọn đặt gợi ý
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]94
Khi nó được đặt là một số nguyên dương, nó sẽ đọc nhiều ký tự [hoặc byte ở chế độ nhị phân] từ tệp và đủ để hoàn thành dòng đó
Trong trường hợp của chúng tôi, dòng đầu tiên của chúng tôi là 29 ký tự. Do đó, kích thước từ 1 đến 29 sẽ dẫn đến việc đọc dòng đầu tiên, trong khi 30 hoặc lớn hơn sẽ đọc cả hai dòng, như hình bên dưới
cho vòng lặp
Nếu chúng ta cần lặp lại tất cả các dòng của một tệp, bạn có thể sử dụng vòng lặp
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]49, đây là bộ nhớ hiệu quả và nhanh chóng với mã rõ ràng hơn
file.open["file.txt","w"] file.write["Write this text to the file"] file.close[]2
Viết một tập tin
viết[]
Để viết các giá trị mới [e. g. , text] vào tệp, chúng ta có thể sử dụng phương thức
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]70
Tuy nhiên, cách các giá trị mới sẽ được ghi vào tệp phụ thuộc vào chế độ mở như được tóm tắt trong cheat sheet 2
Ví dụ: chế độ
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]71 sẽ cắt bớt tệp và do đó tệp sẽ chỉ chứa các giá trị mới. Chế độ
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]72 sẽ cho phép bạn thêm các giá trị mới vào tệp hiện có
file.open["file.txt","w"] file.write["Write this text to the file"] file.close[]6
Đoạn mã trên ghi chuỗi đã chỉ định vào tệp sau khi cắt bớt văn bản trước khi mở
Một lưu ý phụ là phương thức
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]70 sẽ tự động in số ký tự đã viết, có thể loại bỏ số ký tự này bằng cách gán giá trị trả về cho dấu gạch dưới.
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]74
Sau hành động viết, bạn có thể xem văn bản hiện tại của tệp. Như mong đợi, chỉ có chuỗi mới được chứa trong tệp
file.open["file.txt","w"] file.write["Write this text to the file"] file.close[]9
dòng viết []
Chúng ta cũng có thể sử dụng phương thức
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]75 để ghi nhiều dòng vào tệp
Phương thức này sẽ lấy một danh sách các chuỗi làm tham số. Làm thế nào các dòng được viết [e. g. , ghi đè hoặc nối thêm] sử dụng phương pháp này tương tự như việc triển khai phương pháp
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]70
text = "Hello world" file.open["file.txt","w"] amount_bytes = file.write[text] print[amount_bytes] file.close[]2
Sau khi thực thi đoạn mã trên, văn bản của tệp sẽ trở thành
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]77 khi được đọc theo phương thức
file = open["file.txt", "r"] cont = file.read[] print[cont] file.close[]93 mặc định
Đóng một tập tin
Sau khi bạn làm việc xong với tệp, cách tốt nhất là đóng tệp bằng cách gọi phương thức
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]79 trên đối tượng tệp
Như được hiển thị bên dưới, trước khi đóng tệp, phương thức
file.open[file.txt] print[file.readlines[]] file.close[]80 trả về
file.open[file.txt] print[file.readlines[]] file.close[]81 và nó trả về
file.open[file.txt] print[file.readlines[]] file.close[]82 sau khi chúng ta gọi phương thức
file = open["file.txt", "r"] print[file.read[2]] print[file.read[3]] print[file.read[4]] file.close[]79
>>> open['python_test_file.txt', 'r']
0Sự kết luận
Đây là những phương pháp đọc và viết phổ biến có thể áp dụng cho hầu hết các trường hợp sử dụng
Bạn có thể tham khảo hai cheat sheet để tham khảo nhanh nếu gặp bất kỳ vấn đề nào trong việc thực hiện các thao tác đọc và ghi trong lập trình Python của mình