Chức năng của hàm read() trong python là gì?

Phương thức read[] trả về số byte đã chỉ định từ tệp. Mặc định là -1 có nghĩa là toàn bộ tập tin

tập tin. đọc[]

Tham sốMô tảkích thướcTùy chọn. Số byte cần trả về. Mặc định -1, có nghĩa là toàn bộ tệp

ví dụ

f = open["myFile.txt", "r"]
print[f.read[]]
f = open["myFile.txt", "r"]
print[f.read[33]]*

Tệp được đặt tên vị trí trên đĩa để lưu trữ thông tin liên quan. Chúng được sử dụng để lưu trữ vĩnh viễn dữ liệu trong bộ nhớ cố định [e. g. ổ đĩa cứng]

Do Bộ nhớ truy cập ngẫu nhiên [RAM] không ổn định [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ữ chúng vĩnh viễn

Khi chúng ta muốn đọc hoặc ghi vào một tệp, trước tiên chúng ta cần mở nó. Khi chúng tôi hoàn tất, nó cần được đóng lại để các tài nguyên được liên kết với tệp được giải phóng

Do đó, trong Python, thao tác tệp diễn ra theo thứ tự sau

  1. Mở tệp tin
  2. Đọc hoặc viết [thực hiện thao tác]
  3. Đóng tệp

Mở tệp bằng Python

Python có chức nă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
2 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ở tệp. Trong chế độ, chúng tôi chỉ định xem chúng tôi muốn đọ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
3, 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
4 hay nối thêm
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 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 ở chế độ văn bản. Ở 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ế độ đượ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

Chế độ Mô 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
3Mở tệp để đọc. [mặc đị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
4Mở tệp để ghi. Tạo một tệp mới nếu nó không tồn tại hoặc cắt bớt tệp nếu nó tồn tại.
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
8Mở tệp để tạo độc quyền. Nếu tệp đã tồn tại, thao tác không thành cô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
5Mở tệp để thêm vào cuối tệp mà không cắt bớt tệp. Tạo một tập tin mới nếu nó không tồn tại.
f = open["myFile.txt", "r"]
print[f.read[33]]*
10Mở ở chế độ văn bản. [mặc định]
f = open["myFile.txt", "r"]
print[f.read[33]]*
11Mở ở chế độ nhị phân.
f = open["myFile.txt", "r"]
print[f.read[33]]*
12Mở 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"]      # 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 không ngụ ý số 97 cho đến khi nó được mã hóa bằng cách sử dụng
f = open["myFile.txt", "r"]
print[f.read[33]]*
14 [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["myFile.txt", "r"]
print[f.read[33]]*
15 nhưng trong Linux là
f = open["myFile.txt", "r"]
print[f.read[33]]*
16

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 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, bạn nên chỉ định loại mã hóa

f = open["myFile.txt", "r"]
print[f.read[33]]*
1

Đóng tệp bằng Python

Khi chúng tôi thực hiện xong các thao tác trên tệp, chúng tôi cần đóng tệp đúng cách

Đóng tệp sẽ giải phóng các tài nguyên được liên kết với tệp. Nó được thực hiện bằng cách sử dụng phương thức

f = open["myFile.txt", "r"]
print[f.read[33]]*
17 có sẵn trong Python

Python có bộ thu gom rác để dọn sạch các đối tượng không được ước tính nhưng chúng ta không được dựa vào nó để đóng tệ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
1

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 tôi đang thực hiện một số thao tác với tệp, mã sẽ thoát mà không đóng tệp

Một cách an toàn hơn là sử dụng try. cuối cùng chặn

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
2

Bằng cách này, chúng tôi đảm bảo rằng tệp được đóng đúng cách ngay cả khi một ngoại lệ được đưa ra khiến dò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["myFile.txt", "r"]
print[f.read[33]]*
18. Đ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["myFile.txt", "r"]
print[f.read[33]]*
18 được thoát

Chúng ta không cần gọi phương thức

f = open["myFile.txt", "r"]
print[f.read[33]]*
17 một cách rõ ràng. Nó được thực hiện trong nội bộ

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

Ghi vào tệp bằng Python

Để ghi vào một tệp bằng Python, chúng ta cần mở nó ở chế độ ghi

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, nối thêm
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 hoặc chế độ tạo độc quyền
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

Chúng ta cần cẩn thận với chế độ

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, vì nó sẽ ghi đè lên tệp nếu nó đã tồn tại. Do đó, tất cả dữ liệu trước đó sẽ bị xóa

Viết một chuỗi hoặc chuỗi byte [đối với tệp nhị phân] được thực hiện bằ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
15. Phương thức này trả về số ký tự được ghi vào tệp

>>> f = open["test.txt"]    # open file in current directory
>>> f = open["C:/Python38/README.txt"]  # specifying full path
2

Chương trình này sẽ tạo một tệp mới có tê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
16 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ó sẽ bị ghi đè

Chúng ta phải bao gồm các ký tự dòng mới để phân biệt các dòng khác nhau

Đọc tệp bằng Python

Để đọc một tệp bằng Python, chúng ta phải mở tệp ở chế độ đọ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
3

Có nhiều phương pháp có sẵn cho mục đích này. Chúng ta có thể sử dụ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
18 để đọc kích thước của 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 ta có thể đọc tệ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
19 mà chúng ta đã viết ở phần trên theo cách sau

>>> f = open["test.txt"]    # open file in current directory
>>> f = open["C:/Python38/README.txt"]  # specifying full path
7

Chúng ta có thể thấy 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
20 trả về một dòng mới 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
21. Khi đến cuối tệp, chúng tôi nhận được một chuỗi trống khi đọc thêm

Chúng ta có thể thay đổi [vị trí] con trỏ tệp hiện tại bằng cách sử dụ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
22. Tương tự, 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
23 trả về vị trí hiện tại của chúng ta [tính theo số byte]

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
2

Chúng ta có thể đọc từng dòng một tệp bằng cách sử dụng vòng lặp for. Cái này vừa hiệu quả vừa nhanh

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
3

Trong chương trình này, bản thân các dòng trong tệp bao gồm một ký tự xuống 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
24. Vì vậy, chúng tôi sử dụng tham số kết thúc của hàm
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
25 để tránh hai dòng mới khi in

Ngoài ra, chúng ta có thể sử dụ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
26 để đọc các dòng riêng lẻ của tệp. Phương pháp này đọc một tệp cho đến dòng mới, bao gồm cả ký tự dòng mới

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
0

Cuối cù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
27 trả về 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 đều trả về các giá trị trống khi đến cuối tệp [EOF]

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
1

Phương thức tệp Python

Có nhiều phương thức 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

MethodDescriptionclose[]Đóng một tập tin đã mở. Nó không có tác dụng nếu tệp đã được đóng. detach[] Tách bộ đệm nhị phân cơ bản khỏi

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
28 và trả về nó. fileno[] Trả về một số nguyên [mô tả tệp] của tệp. flush[] Xóa bộ đệm ghi của luồng tệp. isatty[]Trả về
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
29 nếu luồng tệp tương tác. read[n]Đọc tối đa n ký tự từ tệp. Đọc đến cuối tệp nếu nó âm hoặ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
60. readable[] Trả về
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
29 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 tối đa n byte nếu được chỉ định. readlines[n=-1]Đọc và trả về danh sách các dòng từ tệp. Đọc tối đa n byte/ký tự nếu được chỉ định. seek[offset,from=
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
62]Thay đổi vị trí tệp thành byte bù, liên quan đến from [bắt đầu, hiện tại, kết thúc]. seekable[] Trả về
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
29 nếu luồng tệp hỗ trợ truy cập ngẫu nhiên. Tell[] Trả về một số nguyên đại diện cho vị trí hiện tại của đối tượng tệp. truncate[size=____260]Thay đổi kích thước luồng tệp thành kích thước byte. Nếu kích thước không được chỉ định, hãy thay đổi kích thước thành vị trí hiện tại. writable[] Trả về
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
29 nếu luồng tệp có thể được ghi vào. write[s]Ghi chuỗi s vào tệp và trả về số ký tự đã ghi. writelines[lines] Ghi danh sách các dòng vào tệp

Chủ Đề