- Sử dụng file.read() để tìm kết thúc tệp trong Python
- Sử dụng phương thức file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 0 với vòng lặp file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 1 để tìm kết thúc tệp trong Python
- Sử dụng toán tử Walrus để tìm kết thúc tệp trong Python
file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 2 là viết tắt của file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 3. Đây là điểm trong chương trình mà người dùng không thể đọc dữ liệu nữa. Nó có nghĩa là chương trình đọc toàn bộ tệp cho đến khi kết thúc. Ngoài ra, khi đạt được EOF hoặc cuối của tệp, các chuỗi trống được trả về dưới dạng đầu ra. Vì vậy, người dùng cần biết liệu một tệp có ở EOF hay không.
Hướng dẫn này giới thiệu các cách khác nhau để tìm hiểu xem một tệp có ở EOF của nó trong Python hay không.
Sử dụng file.read() để tìm kết thúc tệp trong Python
Phương thức file.read() là hàm Python tích hợp được sử dụng để đọc nội dung của một tệp đã cho. Nếu phương thức file.read() trả về một chuỗi trống dưới dạng đầu ra, điều đó có nghĩa là tệp đã đạt đến EOF của nó.
Example:
with open("randomfile.txt", "r") as f: while True: file_eof = file_open.read() if file_eof == '': print('End Of File') breakLưu ý rằng khi chúng tôi gọi hàm file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 7 để mở tệp khi bắt đầu chương trình, chúng tôi sử dụng file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 8 làm chế độ chỉ để đọc tệp. Cuối cùng, chúng tôi sử dụng câu lệnh file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 9 có điều kiện để kiểm tra đầu ra được trả về ở cuối là một chuỗi trống.
Sử dụng phương thức file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 0 với vòng lặp file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 1 để tìm kết thúc tệp trong Python
Sử dụng toán tử Walrus để tìm kết thúc tệp trong Python
file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 2 là viết tắt của file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 3. Đây là điểm trong chương trình mà người dùng không thể đọc dữ liệu nữa. Nó có nghĩa là chương trình đọc toàn bộ tệp cho đến khi kết thúc. Ngoài ra, khi đạt được EOF hoặc cuối của tệp, các chuỗi trống được trả về dưới dạng đầu ra. Vì vậy, người dùng cần biết liệu một tệp có ở EOF hay không.
Hướng dẫn này giới thiệu các cách khác nhau để tìm hiểu xem một tệp có ở EOF của nó trong Python hay không.
Example:
file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close()Phương thức file.read() là hàm Python tích hợp được sử dụng để đọc nội dung của một tệp đã cho. Nếu phương thức file.read() trả về một chuỗi trống dưới dạng đầu ra, điều đó có nghĩa là tệp đã đạt đến EOF của nó.
Sử dụng toán tử Walrus để tìm kết thúc tệp trong Python
file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 2 là viết tắt của file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() 3. Đây là điểm trong chương trình mà người dùng không thể đọc dữ liệu nữa. Nó có nghĩa là chương trình đọc toàn bộ tệp cho đến khi kết thúc. Ngoài ra, khi đạt được EOF hoặc cuối của tệp, các chuỗi trống được trả về dưới dạng đầu ra. Vì vậy, người dùng cần biết liệu một tệp có ở EOF hay không.
Example:
file = open("randomfile.txt", "r") while (f := file.read()): process(f) file.close()Hướng dẫn này giới thiệu các cách khác nhau để tìm hiểu xem một tệp có ở EOF của nó trong Python hay không.
Để đọc dòng cuối cùng của một tệp trong Python mà không lưu trữ toàn bộ tệp trong bộ nhớ: Đây là một ví dụ: Cách tiếp cận ngây thơ nhất để đọc dòng cuối cùng của một tệp trong Python là: Đây là mã: Nếu bạn có một tệp lớn mà bạn không muốn lưu trữ trong bộ nhớ hoặc lặp qua cách bạn đã thấy trước đó, bạn có thể dựa vào việc tìm kiếm tệp. Để tìm dòng cuối cùng của một tệp lớn trong Python bằng cách tìm kiếm: Đây là cách nó trông trong mã: Tuy nhiên, bằng cách xem mã, không có gì tầm thường để hiểu cách thức hoạt động của nó.Cách tiếp cận ngây thơ
Làm thế nào để tập tin tìm kiếm công việc trong Python
Để đọc dòng cuối cùng của một tệp bằng cách tìm kiếm trong Python, đầu đọc tệp được di chuyển ở ký tự cuối cùng của tệp. Sau đó, người đọc nhảy về phía sau nhân vật cho đến khi nó đến đầu dòng cuối cùng. Sau đó, nó đọc dòng cuối cùng vào bộ nhớ.beginning of the last line. Then it reads the last line into memory.
Dưới đây là một minh họa về cách mã tìm thấy dòng cuối cùng trong một tệp có ba dòng văn bản:
Hãy cùng xem mã chi tiết hơn một chút.
Trước hết, tìm kiếm có nghĩa là đặt vị trí đầu đọc tệp trong tệp.
Trong Python, bạn chỉ có thể tìm kiếm các tệp nhị phân, vì vậy bạn cần đọc tệp dưới dạng tệp nhị phân.
Phương thức Seek () tuân theo cú pháp này:seek() method follows this syntax:
file.seek(offset, whence)Where:
& Nbsp; offset & nbsp; chỉ định số lượng ký tự để di chuyển. Sử dụng một giá trị âm để di chuyển về phía sau.offset specifies how many characters to move. Use a negative value to move backward.
Đối số & nbsp; whence & nbsp; là một đối số tùy chọn có thể được đặtwhence argument is an optional argument that can be set
- os.seek_set & nbsp; hoặc 0, tìm kiếm liên quan đến sự khởi đầu của tệp. or 0—seek relative to the begining of the file.
- os.seek_cur & nbsp; hoặc 1 tìm kiếm liên quan đến vị trí hiện tại trong tệp. or 1—seek relative to the current position in the file.
- os.seek_end & nbsp; hoặc 2, tìm kiếm liên quan đến cuối tệp. or 2—seek relative to the end of the file.
Trước hết, hãy để đơn giản hóa mã ở trên một chút bằng cách xóa xử lý lỗi và các hằng số mô -đun HĐH:os module constants:
with open("example.txt", "rb") as file: file.seek(-2, 2) while file.read(1) != b'\n': file.seek(-2, 1) last_line = file.readline().decode()Bây giờ bạn đã hiểu phương thức Seek () hoạt động như thế nào, bạn có thể hiểu mã:seek() method works, you can understand the code:
- file.seek (-2, 2) có nghĩa là nhảy lên ký tự thứ 2 trước khi kết thúc tệp. means “Jump to the 2nd character before the end of the file”.
- File.Read (1) có nghĩa là đọc ký tự từ bên phải. means “Read the character from the right”.
- file.seek (-2, 1) có nghĩa là nhảy 2 ký tự còn lại từ ký tự hiện tại. means “Jump 2 characters left from the current character”.
- Bát \ n, là ký tự ngắt dòng ở chế độ nhị phân. is the line break character in binary mode.
- file.Readline (). Decode () đọc dòng và chuyển đổi nó từ chuỗi nhị phân sang chuỗi. reads the line and converts it from binary to string.
Vì vậy, quá trình như sau:
- Mã đầu tiên nhảy đến ký tự cuối cùng của tệp.
- Sau đó, nó kiểm tra xem ký tự là ký tự ngắt dòng.
- Nếu nó không, thì nó sẽ nhảy trở lại một ký tự và kiểm tra lại.
- Nó lặp đi lặp lại điều này cho đến khi gặp phải sự phá vỡ dòng, điều này cho thấy rằng sự khởi đầu của dòng cuối cùng đã đạt được.
- Sau đó, nó lưu trữ dòng cuối cùng trong bộ nhớ.
Lưu ý rằng việc tìm kiếm một tệp chỉ hoạt động với các tệp nhị phân. Đây là lý do tại sao tệp được đọc ở chế độ nhị phân. Ngoài ra, lưu ý rằng khi bạn đang xử lý một tệp nhị phân, bạn cần phải nhảy hai ký tự còn lại để đọc một ký tự sang phải.
Bây giờ, hãy để Lừa mang lại xử lý lỗi thử để đảm bảo tệp không dài chính xác một dòng. Bởi vì nếu có, Seek () sẽ không bao giờ gặp phải ký tự phá vỡ dòng như không có. Chúng ta cũng hãy sử dụng mô -đun HĐH Hằng số Seek_end và Seek_cur thay vì đơn giản 1 hoặc 2:seek() will never encounter a line break character as there are none. Let’s also use the os module’s constants SEEK_END and SEEK_CUR instead of plain 1 or 2:
import os with open("example.txt", "rb") as file: try: file.seek(-2, os.SEEK_END) while file.read(1) != b'\n': file.seek(-2, os.SEEK_CUR) except OSError: file.seek(0) last_line = file.readline().decode()Bây giờ bạn đã học được cách tiếp cận tìm kiếm hoạt động khi đọc dòng cuối cùng của một tệp trong Python.
Sự kết luận
Hôm nay bạn đã học được 3 cách để đọc dòng cuối cùng của một tệp trong Python:
- Bỏ qua các tập tin đến dòng cuối cùng. through the file all the way to the last line.
- Đọc toàn bộ tệp trong bộ nhớ và truy cập dòng cuối cùng. the entire file in memory, and access the last line.
- Tìm kiếm đến cuối tập tin và đọc dòng cuối cùng. to the end of the file and read the last line.
Chọn một thứ phù hợp nhất với nhu cầu của bạn.
Tôi hy vọng bạn thấy nó hữu dụng.Cảm ơn vì đã đọc!
Đọc thêm
Thủ thuật Python
Cách ghi vào một tệp trong Python
Với tuyên bố trong Python