❮ Chức năng tích hợp sẵn
Thí dụ
Mở tệp và in nội dung:
f = open ["demofile.txt", "r"] in [f.Read []]
print[f.read[]]
Hãy tự mình thử »
Định nghĩa và cách sử dụng
Hàm
# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
6 mở một tệp và trả về nó dưới dạng đối tượng tệp.Đọc thêm về xử lý tập tin trong các chương của chúng tôi về xử lý tập tin.
Cú pháp
Giá trị tham số
tập tin | Đường dẫn và tên của tệp |
cách thức | Một chuỗi, xác định chế độ bạn muốn mở tệp trong: 7 - Đọc - Giá trị mặc định. Mở một tệp để đọc, lỗi nếu tệp không tồn tại 8 - Phụ lục - Mở một tệp để thêm vào, tạo tệp nếu nó không tồn tại 9 - Viết - Mở tệp để viết, tạo tệp nếu nó không tồn tại 0 - Tạo - Tạo tệp được chỉ định, trả về lỗi nếu tệp tồn tạiNgoài ra, bạn có thể chỉ định nếu tệp nên được xử lý làm chế độ nhị phân hoặc văn bản 1 - Văn bản - Giá trị mặc định. Chế độ văn bản 2 - Binary - Chế độ nhị phân [ví dụ: hình ảnh]
|
Các trang liên quan
Tìm hiểu cách mở các tệp trong hướng dẫn đọc tệp của chúng tôi
Tìm hiểu cách ghi/tạo tệp trong hướng dẫn ghi/tạo tệp của chúng tôi
Tìm hiểu cách xóa các tệp trong hướng dẫn xóa tệp của chúng tôi
❮ Chức năng tích hợp sẵn
Hàm Open [] mở tệp [nếu có thể] và trả về đối tượng tệp tương ứng.
Cú pháp của
# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
6 là:open[file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None]
mở [] tham số
- Tệp - đối tượng giống như đường dẫn [biểu thị đường dẫn hệ thống tệp] - path-like object [representing a file system path]
- Chế độ [Tùy chọn] - Chế độ trong khi mở tệp. Nếu không được cung cấp, nó mặc định là
4 [mở để đọc ở chế độ văn bản]. Các chế độ tệp có sẵn là: [optional] - mode while opening a file. If not provided, it defaults to# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
4 [open for reading in text mode]. Available file modes are:# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
Cách thứcSự mô tả
4# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
Mở một tập tin để đọc. [mặc định]
6# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
Mở một tập tin để viết. Tạo một tệp mới nếu nó không tồn tại hoặc cắt ngắn tệp nếu nó tồn tại.
7# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
Mở một tập tin để tạo độc quyền. Nếu tệp đã tồn tại, hoạt động không thành công.
8# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
Mở để nối thêm ở cuối tệp mà không cần cắt ngắn nó. Tạo một tệp mới nếu nó không tồn tại.
9# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
Mở ở chế độ văn bản. [mặc định]
0f = open["path_to_file", mode = 'r', encoding='utf-8']
Mở ở chế độ nhị phân.
1f = open["path_to_file", mode = 'r', encoding='utf-8']
Mở tệp để cập nhật [đọc và viết] - bộ đệm [tùy chọn] - được sử dụng để thiết lập chính sách bộ đệm [optional] - used for setting buffering policy
- Mã hóa [Tùy chọn] - Định dạng mã hóa [optional] - the encoding format
- Lỗi [Tùy chọn] - Chuỗi Chỉ định cách xử lý lỗi mã hóa/giải mã [optional] - string specifying how to handle encoding/decoding errors
- Newline [Tùy chọn] - Cách thức hoạt động của chế độ Newlines [giá trị có sẵn:
2,f = open["path_to_file", mode = 'r', encoding='utf-8']
3,f = open["path_to_file", mode = 'r', encoding='utf-8']
4,f = open["path_to_file", mode = 'r', encoding='utf-8']
4 và# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
6 [optional] - how newlines mode works [available values:f = open["path_to_file", mode = 'r', encoding='utf-8']
2,f = open["path_to_file", mode = 'r', encoding='utf-8']
3,f = open["path_to_file", mode = 'r', encoding='utf-8']
4,f = open["path_to_file", mode = 'r', encoding='utf-8']
4, and# opens the file in reading mode f = open["path_to_file", mode='r'] # opens the file in writing mode f = open["path_to_file", mode = 'w'] # opens for writing to the end f = open["path_to_file", mode = 'a']
6f = open["path_to_file", mode = 'r', encoding='utf-8']
- CloseFD [Tùy chọn] - Phải là
7 [mặc định]; Nếu được đưa ra khác, một ngoại lệ sẽ được nêu ra [optional] - must bef = open["path_to_file", mode = 'r', encoding='utf-8']
7 [default]; if given otherwise, an exception will be raisedf = open["path_to_file", mode = 'r', encoding='utf-8']
- mở [tùy chọn] - một người mở tùy chỉnh; Phải trả về một bộ mô tả tệp mở [optional] - a custom opener; must return an open file descriptor
Trả về giá trị từ Open []
Hàm
# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
6 Trả về một đối tượng tệp có thể được sử dụng để đọc, ghi và sửa đổi tệp.Nếu không tìm thấy tệp, nó sẽ tăng ngoại lệ
f = open["path_to_file", mode = 'r', encoding='utf-8']
9.Ví dụ 1: Làm thế nào để mở một tệp trong Python?
# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
Vì chế độ bị bỏ qua, tệp được mở ở chế độ
# opens the file in reading mode
f = open["path_to_file", mode='r']
# opens the file in writing mode
f = open["path_to_file", mode = 'w']
# opens for writing to the end
f = open["path_to_file", mode = 'a']
4; Mở ra để đọc.Ví dụ 2: Cung cấp chế độ để mở []
# opens the file in reading mode
f = open["path_to_file", mode='r']
# opens the file in writing mode
f = open["path_to_file", mode = 'w']
# opens for writing to the end
f = open["path_to_file", mode = 'a']
Mã hóa mặc định của Python là ASCII. Bạn có thể dễ dàng thay đổi nó bằng cách truyền tham số
>>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
1.f = open["path_to_file", mode = 'r', encoding='utf-8']
Đọc được đề xuất: Đầu vào/đầu ra tệp Python Python File Input/Output
Các tập tin được đặt tên là vị trí trên đĩa để lưu trữ thông tin liên quan. Chúng được sử dụng để lưu trữ dữ liệu vĩnh viễn trong bộ nhớ không bay hơi [ví dụ: đĩa cứng].
Vì bộ nhớ truy cập ngẫu nhiên [RAM] không biến động [mất dữ liệu khi tắt máy tính], chúng tôi sử dụng các tệp để sử dụng dữ liệu trong tương lai bằng cách lưu trữ vĩnh viễn chúng.
Khi chúng tôi muốn đọc từ hoặc ghi vào một tập tin, chúng tôi cần mở nó trước. Khi chúng tôi hoàn thành, nó cần phải được đóng để các tài nguyên được gắn với tệp được giải phóng.
Do đó, trong Python, một hoạt động tệp diễn ra theo thứ tự sau:
- Mở tệp tin
- Đọc hoặc viết [thực hiện hoạt động]
- Đóng tệp
Mở tệp trong Python
Python có chức năng
# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
6 tích hợp để mở tệp. Hàm này trả về một đối tượng tệp, còn được gọi là tay cầm, vì nó được sử dụng để đọc hoặc sửa đổi tệp cho phù hợp.>>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
Chúng tôi có thể chỉ định chế độ trong khi mở một tệp. Trong chế độ, chúng tôi chỉ định xem chúng tôi muốn đọc
>>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
3, viết >>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
4 hoặc nối >>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
5 vào tệp. Chúng tôi cũng có thể chỉ định nếu chúng tôi muốn mở tệp ở chế độ văn bản hoặc chế độ nhị phân.Mặc định là đọc trong chế độ văn bản. Trong chế độ này, chúng tôi nhận được chuỗi khi đọc từ tệp.
Mặt khác, chế độ nhị phân trả về byte và đây là chế độ sẽ được sử dụng khi xử lý các tệp không phải văn bản như hình ảnh hoặc tệp thực thi.
3 | Mở một tập tin để đọc. [mặc định] |
4 | Mở một tập tin để viết. Tạo một tệp mới nếu nó không tồn tại hoặc cắt ngắn tệp nếu nó tồn tại. |
8 | Mở một tập tin để tạo độc quyền. Nếu tệp đã tồn tại, hoạt động không thành công. |
5 | Mở một tệp để nối thêm ở cuối tệp mà không cần cắt ngắn nó. Tạo một tệp mới nếu nó không tồn tại. |
0 | Mở trong chế độ văn bản. [mặc định] |
1 | Mở ở chế độ nhị phân. |
2 | Mở một tệp để cập nhật [đọc và viết] |
f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
Không giống như các ngôn ngữ khác, ký tự
>>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
5 không ngụ ý số 97 cho đến khi nó được mã hóa bằng cách sử dụng f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
4 [hoặc các mã hóa tương đương khác].Hơn nữa, mã hóa mặc định phụ thuộc vào nền tảng. Trong Windows, nó là
f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
5 nhưng f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
6 trong Linux.Vì vậy, chúng tôi cũng không được dựa vào mã hóa mặc định nếu không mã của chúng tôi sẽ hoạt động khác nhau trong các nền tảng khác nhau.
Do đó, khi làm việc với các tệp ở chế độ văn bản, rất khuyến khích chỉ định loại mã hóa.
f = open["test.txt", mode='r', encoding='utf-8']
Đóng tệp trong Python
Khi chúng tôi hoàn thành các hoạt động thực hiện trên tệp, chúng tôi cần đóng tệp đúng cách.
Đóng một tệp sẽ giải phóng các tài nguyên được gắn với tệp. Nó được thực hiện bằng phương pháp
f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
7 có sẵn trong Python.Python có một người thu gom rác để làm sạch các đối tượng không được giới thiệu nhưng chúng ta không được dựa vào nó để đóng tệp.
f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
Phương pháp này không hoàn toàn an toàn. Nếu một ngoại lệ xảy ra khi chúng ta đang thực hiện một số hoạt động với tệp, mã thoát ra mà không đóng tệp.
Một cách an toàn hơn là sử dụng thử ... cuối cùng chặn.
try:
f = open["test.txt", encoding = 'utf-8']
# perform file operations
finally:
f.close[]
Bằng cách này, chúng tôi đảm bảo rằng tệp được đóng đúng ngay cả khi một ngoại lệ được nêu ra khiến luồng chương trình dừng lại.
Cách tốt nhất để đóng tệp là sử dụng câu lệnh
f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
8. Điều này đảm bảo rằng tệp được đóng khi khối bên trong câu lệnh f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
8 được xuất hiện.Chúng ta không cần phải gọi rõ ràng phương thức
f = open["test.txt"] # equivalent to 'r' or 'rt'
f = open["test.txt",'w'] # write in text mode
f = open["img.bmp",'r+b'] # read and write in binary mode
7. Nó được thực hiện trong nội bộ.with open["test.txt", encoding = 'utf-8'] as f:
# perform file operations
Viết vào các tệp trong Python
Để ghi vào một tệp trong Python, chúng ta cần mở nó trong Write
>>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
4, nối thêm >>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
5 hoặc chế độ tạo độc quyền >>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
8.Chúng ta cần cẩn thận với chế độ
>>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
4, vì nó sẽ ghi đè vào tệp nếu nó đã tồn tại. Do đó, tất cả các dữ liệu trước đó bị xóa.Viết một chuỗi hoặc chuỗi byte [cho các tệp nhị phân] được thực hiện bằng phương thức
f = open["test.txt", mode='r', encoding='utf-8']
5. Phương thức này trả về số lượng ký tự được ghi vào tệp.# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
0Chương trình này sẽ tạo một tệp mới có tên
f = open["test.txt", mode='r', encoding='utf-8']
6 trong thư mục hiện tại nếu nó không tồn tại. Nếu nó tồn tại, nó được ghi đè.Chúng ta phải bao gồm các ký tự mới để phân biệt các dòng khác nhau.
Đọc các tệp trong Python
Để đọc một tệp trong Python, chúng ta phải mở tệp trong chế độ đọc
>>> f = open["test.txt"] # open file in current directory
>>> f = open["C:/Python38/README.txt"] # specifying full path
3.Có nhiều phương pháp khác nhau cho mục đích này. Chúng ta có thể sử dụng phương thức
f = open["test.txt", mode='r', encoding='utf-8']
8 để đọc theo số lượng dữ liệu. Nếu tham số kích thước không được chỉ định, nó sẽ đọc và trả về đến cuối tệp.Chúng tôi có thể đọc tệp
f = open["test.txt", mode='r', encoding='utf-8']
9 mà chúng tôi đã viết trong phần trên theo cách sau:# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
1Chúng ta có thể thấy rằng phương thức
f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
0 trả về một dòng mới là f = open["path_to_file", mode = 'r', encoding='utf-8']
4. Khi kết thúc của tệp, chúng tôi sẽ nhận được một chuỗi trống khi đọc thêm.Chúng ta có thể thay đổi con trỏ tệp hiện tại [vị trí] bằng phương thức
f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
2. Tương tự, phương thức f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
3 trả về vị trí hiện tại của chúng tôi [với số lượng byte].# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
2Chúng ta có thể đọc từng dòng tệp bằng cách sử dụng một vòng lặp. Điều này là cả hiệu quả và nhanh chóng.
# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
3Trong chương trình này, các dòng trong tập tin bao gồm một ký tự mới
f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
4. Vì vậy, chúng tôi sử dụng tham số cuối của hàm f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
5 để tránh hai dòng mới khi in.Ngoài ra, chúng ta có thể sử dụng phương thức
f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
6 để đọc các dòng riêng lẻ của tệp. Phương thức này đọc một tệp cho đến khi dòng mới, bao gồm cả ký tự dòng mới.# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
4Cuối cùng, phương thức
f = open["test.txt", encoding = 'utf-8']
# perform file operations
f.close[]
7 trả về một danh sách các dòng còn lại của toàn bộ tệp. Tất cả các phương thức đọc này trả về các giá trị trống khi kết thúc tệp [EOF].# opens test.text file of the current directory
f = open["test.txt"]
# specifying the full path
f = open["C:/Python33/README.txt"]
5Phương thức tập tin Python
Có nhiều phương pháp khác nhau có sẵn với đối tượng tệp. Một số trong số chúng đã được sử dụng trong các ví dụ trên.
Dưới đây là danh sách đầy đủ các phương thức trong chế độ văn bản với một mô tả ngắn gọn:
gần[] | Đóng một tập tin đã mở. Nó không có tác dụng nếu tệp đã được đóng. |
tách rời [] | Tách các bộ đệm nhị phân cơ bản với 8 và trả về nó. |
thư mục số[] | Trả về một số nguyên [mô tả tệp] của tệp. |
tuôn ra[] | Xóa bộ đệm ghi của luồng tệp. |
isatty [] | Trả về 7 nếu luồng tệp tương tác. |
Đọc [n] | Đọc nhiều nhất n ký tự từ tệp. Đọc cho đến khi kết thúc tệp nếu nó âm hoặc 2. |
có thể đọc được [] | Trả về 7 nếu luồng tệp có thể được đọc từ. |
READLINE [n = -1] | Đọc và trả về một dòng từ tệp. Đọc trong nhiều nhất n byte nếu được chỉ định. |
Đo đọc [n = -1] | Đọc và trả về một danh sách các dòng từ tệp. Đọc nhiều nhất là n byte/ký tự nếu được chỉ định. |
tìm kiếm [bù, từ = ________ 82] | Thay đổi vị trí tệp thành các byte bù, tham chiếu từ [bắt đầu, hiện tại, kết thúc]. |
có thể tìm kiếm [] | Trả về 7 Nếu luồng tệp hỗ trợ truy cập ngẫu nhiên. |
kể[] | Trả về một số nguyên đại diện cho vị trí hiện tại của đối tượng tệp. |
cắt ngắn [size = ________ 32] | Thay đổi kích thước luồng tệp thành Byte kích thước. Nếu kích thước không được chỉ định, thay đổi kích thước vị trí hiện tại. |
có thể ghi [] | Trả về 7 nếu luồng tệp có thể được ghi vào. |
viết [các] | Viết chuỗi S vào tệp và trả về số lượng ký tự được viết. |
WriteLines [dòng] | Viết một danh sách các dòng vào tệp. |