Tôi thấy điều quan trọng cần lưu ý là python 3 xác định các chế độ mở khác với các câu trả lời ở đây đúng cho Python 2
Các chế độ mở Python 3 là
'r' open for reading [default]
'w' open for writing, truncating the file first
'x' open for exclusive creation, failing if the file already exists
'a' open for writing, appending to the end of the file if it exists
----
'b' binary mode
't' text mode [default]
'+' open a disk file for updating [reading and writing]
'U' universal newlines mode [for backwards compatibility; should not be used in new code]
Các chế độ
f = open["", "rt"]
22, f = open["", "rt"]
23, f = open["", "rt"]
24, f = open["", "rt"]
25 được kết hợp với các bộ điều chỉnh chế độ f = open["", "rt"]
26 hoặc f = open["", "rt"]
27. f = open["", "rt"]
28 được thêm vào tùy ý, nên tránh sử dụng f = open["", "rt"]
29Khi tôi phát hiện ra một cách khó khăn, bạn nên luôn chỉ định
f = open["", "rt"]
27 khi mở tệp ở chế độ văn bản vì f = open["", "rt"]
22 là bí danh cho f = open["", "rt"]
221 trong hàm f = open["", "rt"]
222 tiêu chuẩn nhưng là bí danh cho f = open["", "rt"]
223 trong hàm f = open["", "rt"]
222 của tất cả các mô-đun nén [ . g. đọc tệp f = open["", "rt"]
225]Do đó, các chế độ để mở tệp phải là
f = open["", "rt"]
221 / f = open["", "rt"]
227 / f = open["", "rt"]
228 / f = open["", "rt"]
229 để đọc/ghi/tạo/nối thêm vào tệp ở chế độ văn bản vàf = open["", "rt"]
223 / f = open["", "rt"]
231 / f = open["", "rt"]
232 / f = open["", "rt"]
233 để đọc/ghi/tạo/nối thêm vào tệp ở chế độ nhị phân Xử lý tệp là một phần không thể thiếu trong lập trình. Xử lý tệp trong Python được đơn giản hóa bằng các phương thức tích hợp sẵn, bao gồm tạo, mở và đóng tệp
Trong khi các tệp đang mở, Python cũng cho phép thực hiện các thao tác tệp khác nhau, chẳng hạn như đọc, ghi và nối thêm thông tin
Bài viết này hướng dẫn bạn cách làm việc với tệp trong Python
điều kiện tiên quyết
Ghi chú. Làm theo một trong những hướng dẫn của chúng tôi để cài đặt Python 3 cho
Mở tệp bằng Python
Phương thức
f = open["", "rt"]
8 của Python là chức năng xử lý tệp chính. Cú pháp cơ bản làfile_object = open['file_name', 'mode']
Hàm
f = open["", "rt"]
8 nhận hai tham số cơ bản để xử lý tệp1.
f = open["", "rb"]
0 bao gồm phần mở rộng tệp và giả sử tệp nằm trong thư mục làm việc hiện tại. Nếu vị trí tệp ở nơi khác, hãy cung cấp đường dẫn tuyệt đối hoặc tương đối2.
f = open["", "rb"]
1 là tham số tùy chọn xác định phương thức mở tệp. Bảng dưới đây phác thảo các tùy chọn có thể khác nhauModeDescriptionf = open["", "rb"]
2Đọc từ tệp và trả về lỗi nếu tệp không tồn tại [mặc định]. f = open["", "rb"]
3Ghi vào tệp và tạo tệp nếu tệp không tồn tại hoặc ghi đè lên tệp hiện có. f = open["", "rb"]
4Tạo độc quyền không thành công nếu tệp đã tồn tại. f = open["", "rb"]
5Thêm vào tệp và tạo tệp nếu tệp không tồn tại hoặc ghi đè lên tệp hiện có. f = open["", "rb"]
6Chế độ nhị phân. Sử dụng chế độ này cho các tệp phi văn bản, chẳng hạn như hình ảnh. f = open["", "rb"]
7Chế độ văn bản. Chỉ sử dụng cho các tệp văn bản [mặc định]. f = open["", "rb"]
8Kích hoạt các phương thức đọc và viếtChế độ phải có chính xác một phương thức tạo[
f = open["", "rb"]
9]/đọc[f = open["", "rt"]
40]/ghi[f = open["", "rt"]
41]/chắp thêm[f = open["", "rt"]
42], nhiều nhất là một phương thức f = open["", "rt"]
43. Bỏ qua chế độ mặc định là f = open["", "rt"]
44 để đọc tệp văn bảnDưới đây là bảng mô tả cách hoạt động của từng chế độ khi được gọi
BehaviorModesReadf = open["", "rt"]
40, f = open["", "rt"]
46, f = open["", "rt"]
47, f = open["", "rt"]
48, f = open["", "rt"]
49Writef = open["", "rt"]
46, f = open["", "rt"]
41, f = open["", "rt"]
47, f = open["", "rt"]
42, f = open["", "rt"]
48, f = open["", "rt"]
49Createf = open["", "rt"]
41, f = open["", "rt"]
47, f = open["", "rt"]
42, f = open["", "rt"]
48, f = open["", "rb"]
9, f = open["", "rt"]
49Pointer Position Startf = open["", "rt"]
40, f = open["", "rt"]
46, f = open["", "rt"]
41, f = open["", "rt"]
47, f = open["", "rb"]
9, f = open["", "rt"]
49Pointer Position Endf = open["", "rt"]
42, f = open["", "rt"]
48Truncate [clear contents]f = open["", "rt"]
41 Chế độ đọc
Chế độ đọc trong Python mở một tệp hiện có để đọc, định vị con trỏ ở đầu tệp
Ghi chú. Nếu tệp không tồn tại, Python sẽ báo lỗi
Để đọc tệp văn bản bằng Python, hãy tải tệp bằng cách sử dụng hàm
f = open["", "rt"]
8f = open["", "rb"]
1Chế độ mặc định để đọc văn bản [______144]. Do đó, phương pháp sau đây tương đương với phương pháp mặc định
f = open["", "rt"]
Để đọc tệp ở chế độ nhị phân, hãy sử dụng
f = open["", "rb"]
Thêm
f = open["", "rt"]
43 để mở tệp ở chế độ đọc và ghif = open["", "rt"]
4____57f = open["", "rb"]
8Trong mọi trường hợp, hàm trả về một đối tượng tệp và các đặc điểm phụ thuộc vào chế độ đã chọn
Chế độ ghi
Chế độ ghi tạo một tệp để ghi nội dung và đặt con trỏ ở đầu. Nếu tệp tồn tại, hãy viết cắt bớt [xóa] mọi thông tin hiện có
Cảnh báo. Chế độ ghi xóa nội dung hiện có ngay lập tức. Kiểm tra xem tệp có tồn tại trước khi vô tình ghi đè thông tin không
Để mở một tệp để ghi thông tin, hãy sử dụng
f = open["", "rb"]
9Chế độ mặc định là văn bản nên dòng sau tương đương với chế độ mặc định
f = open["", "rb"]
0Để viết ở chế độ nhị phân, hãy mở tệp bằng
f = open["", "rb"]
1Thêm
f = open["", "rt"]
43 để cho phép đọc tệpf = open["", "rb"]
10f = open["", "rb"]
11f = open["", "rb"]
12Hàm
f = open["", "rt"]
8 trả về một đối tượng tệp có thông tin chi tiết phụ thuộc vào các chế độ đã chọnChế độ nối thêm
Chế độ nối thêm thông tin vào tệp hiện có, đặt con trỏ ở cuối. Nếu một tệp không tồn tại, chế độ chắp thêm sẽ tạo tệp
Ghi chú. Sự khác biệt chính giữa chế độ ghi và nối thêm là việc nối thêm không xóa nội dung của tệp
Sử dụng một trong các dòng sau để mở tệp ở chế độ chắp thêm
f = open["", "rb"]
13____514f = open["", "rb"]
15Thêm dấu
f = open["", "rt"]
43 để thêm chức năng đọcTạo chế độ
Chế độ tạo [còn được gọi là tạo độc quyền] chỉ tạo một tệp nếu nó không tồn tại, định vị con trỏ ở đầu tệp
Ghi chú. Nếu tệp tồn tại, Python sẽ báo lỗi. Sử dụng chế độ này để tránh ghi đè lên các tệp hiện có
Sử dụng một trong các dòng sau để mở tệp ở chế độ tạo
f = open["", "rb"]
16____517f = open["", "rb"]
18Thêm dấu
f = open["", "rt"]
43 vào chế độ bao gồm chức năng đọc vào bất kỳ dòng nào ở trênĐọc tệp bằng Python
Sau khi nhập tệp vào một đối tượng, Python cung cấp nhiều phương thức để đọc nội dung
Sử dụng phương thức
f = open["", "rb"]
03 trên đối tượng tệp và in kết quả. Ví dụf = open["", "rb"]
19Ghi chú. Hàm
f = open["", "rb"]
04 tự động thêm một dòng trống mới. Để thay đổi hành vi này, hãy thêm tham số f = open["", "rb"]
05 vào f = open["", "rb"]
04 để xóa dòng trốngMã in nội dung của tệp văn bản
Đọc các phần của tệp
Cung cấp một số cho hàm
f = open["", "rb"]
03 để chỉ đọc số lượng ký tự được chỉ địnhf = open["", "rt"]
0Đầu ra in năm ký tự đầu tiên trong tệp
Ngoài ra, sử dụng phương pháp
f = open["", "rb"]
08 để chỉ in dòng đầu tiên của tệpf = open["", "rt"]
1Thêm một số nguyên vào hàm
f = open["", "rb"]
08 để in số ký tự đã chỉ định mà không vượt quá dòng đầu tiênđọc dòng
Để đọc các dòng và lặp qua nội dung của tệp, hãy sử dụng vòng lặp
f = open["", "rb"]
10f = open["", "rt"]
2Ngoài ra, sử dụng phương thức
f = open["", "rb"]
11 trên đối tượng tệpf = open["", "rt"]
3Hàm trả về danh sách các dòng từ luồng tệp
Thêm một số nguyên vào hàm
f = open["", "rb"]
11 để kiểm soát số lượng dòng. Ví dụf = open["", "rt"]
4Số nguyên đại diện cho số ký tự và hàm trả về dòng mà ký tự kết thúc cùng với các dòng trước đó
Đóng tệp
Một tệp vẫn mở cho đến khi gọi hàm
f = open["", "rb"]
13. Bạn nên đóng các tệp không còn được sử dụng để tránh hành vi tệp không thể đoán trước và các tệp bị hỏngĐể đóng tệp, hãy chạy phương thức
f = open["", "rb"]
13 trên đối tượng tệpf = open["", "rt"]
5Một cách khác để đảm bảo đóng tệp là sử dụng câu lệnh
f = open["", "rb"]
15. Ví dụf = open["", "rt"]
6Câu lệnh
f = open["", "rb"]
15 tự động đóng tệpXóa tệp trong Python
Xóa tệp trong Python yêu cầu thiết lập giao tiếp với hệ điều hành. Nhập thư viện
f = open["", "rb"]
17 và xóa tệp có nội dung sauf = open["", "rt"]
7Các tập tin không còn có sẵn. Nếu tệp không tồn tại, Python sẽ báo lỗi
Phương thức tệp Python
Python cung cấp nhiều chức năng khác khi làm việc với các đối tượng tệp. Dưới đây là bảng phác thảo tất cả các quy trình có sẵn và chức năng của chúng
MethodDescriptionf = open["", "rb"]
13Flushes và đóng đối tượng tệp. f = open["", "rb"]
19Tách vùng đệm khỏi luồng văn bản và trả về vùng đệm. f = open["", "rb"]
100Trả về bộ mô tả của tệp nếu có. f = open["", "rb"]
101Xóa bộ đệm ghi. Không có sẵn cho các đối tượng chỉ đọc. f = open["", "rb"]
102Kiểm tra xem luồng tệp có tương tác không. f = open["", "rb"]
03Đọc f = open["", "rb"]
104số ký tự nhiều nhất. f = open["", "rb"]
105Kiểm tra xem một đối tượng có thể đọc được không. f = open["", "rb"]
08Đọc từ đối tượng cho đến khi xuống dòng hoặc kết thúc tệp. f = open["", "rb"]
11Trả về danh sách các dòng từ đối tượng tệp, trong đó f = open["", "rb"]
104 là số ký tự gần đúng. f = open["", "rb"]
109Thay đổi vị trí con trỏ thành f = open["", "rb"]
104 so với f = open["", "rb"]
104. f = open["", "rb"]
112Kiểm tra xem đối tượng tệp có hỗ trợ truy cập ngẫu nhiên không. f = open["", "rb"]
113In vị trí luồng hiện tại. f = open["", "rb"]
114Đổi kích thước luồng tệp thành f = open["", "rb"]
104[hoặc vị trí hiện tại nếu không được nêu] và trả về kích thước. f = open["", "rb"]
116 Ghi f = open["", "rb"]
104 vào đối tượng tệp và trả về số ký tự đã viết. f = open["", "rb"]
118Kiểm tra xem đối tượng tệp có cho phép ghi không. f = open["", "rb"]
119Viết một f = open["", "rb"]
104 dòng vào luồng mà không có dấu tách dòngSự kết luận
Bạn biết cách xử lý tệp trong Python sau khi đọc hướng dẫn này. Thử sử dụng thư viện Python chẳng hạn như Pandas để hoạt động với các loại tệp khác