Vòng lặp
This is the last file
4 được sử dụng để lặp qua từng phần tử của một lần lặp trong Python. Chúng ta có thể sử dụng vòng lặp This is the last file
4 để lặp qua từng dòng bên trong một tệp một cách tuần tự và sau đó đọc dòng cuối cùng của tệp. Đoạn mã sau chỉ cho chúng ta cách đọc dòng cuối cùng của tệp bằng vòng lặp This is the last file
4with open['file.txt', 'r'] as f:
for line in f:
pass
last_line = line
print[last_line]
đầu ra
This is the last file
Chúng tôi đã mở tệp
This is the last file
7 ở chế độ This is the last file
8 và sử dụng vòng lặp This is the last file
4 để lặp qua từng dòng trong tệp. Chúng tôi đã sử dụng từ khóa This is the last file
1 để giữ cho vòng lặp trống. Từ khóa This is the last file
1 này hoạt động như một dòng trống trong Python và được sử dụng khi chúng ta không muốn viết bất kỳ mã nào bên trong vòng lặp hoặc câu lệnh điều kiện. Chúng tôi lưu trữ dòng cuối cùng bên trong biến This is the last file
3 khi vòng lặp kết thúc và in giá trị của nóĐọc dòng cuối cùng của tệp với hàm This is the last file
4 trong Python
This is the last file
Hàm
This is the last file
5 đọc tất cả các dòng của tệp và trả về chúng dưới dạng danh sách. Sau đó, chúng tôi có thể lấy dòng cuối cùng của tệp bằng cách tham chiếu chỉ mục cuối cùng của danh sách bằng cách sử dụng This is the last file
6 làm chỉ mục. Ví dụ mã sau đây cho chúng ta biết cách đọc dòng cuối cùng của tệp bằng hàm This is the last file
5 của Pythonwith open['file.txt', 'r'] as f:
last_line = f.readlines[][-1]
print[last_line]
đầu ra
This is the last file
Chúng tôi đã mở tệp
This is the last file
7 ở chế độ This is the last file
8 và sử dụng with open['file.txt', 'r'] as f:
last_line = f.readlines[][-1]
print[last_line]
0 để đọc dòng cuối cùng của tệp. Chúng tôi đã sử dụng with open['file.txt', 'r'] as f:
last_line = f.readlines[][-1]
print[last_line]
1 vì hàm This is the last file
4 trả về tất cả các dòng ở dạng danh sách và chỉ mục with open['file.txt', 'r'] as f:
last_line = f.readlines[][-1]
print[last_line]
1 này cung cấp cho chúng tôi phần tử cuối cùng của danh sách đóTrong Python, không có phương thức nào có thể đọc trực tiếp dòng cuối cùng của tệp. Vì vậy, chúng ta phải đọc toàn bộ tệp một cách tuần tự cho đến khi đến dòng cuối cùng. Phương thức đầu tiên đọc từng dòng tệp, trong khi phương thức thứ hai đọc tất cả các dòng cùng một lúc
This is the last file
512This is the last file
21 This is the last file
584This is the last file
585This is the last file
38 This is the last file
42This is the last file
588 This is the last file
589This is the last file
38This is the last file
38 This is the last file
77This is the last file
50 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 lại theo cách bạn đã thấy trước đây, 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
- Mở tệp ở chế độ nhị phân
- Tìm kiếm đến cuối tập tin
- Quay lại các ký tự để tìm đầu dòng cuối cùng
Đây là giao diện của nó trong mã
This is the last file
1Tuy nhiên, bằng cách xem mã, việc hiểu cách thức hoạt động của nó không phải là chuyện nhỏ
Tìm kiếm tệp hoạt động như thế nào trong Python
Để đọc dòng cuối cùng của tệp bằng cách tìm kiếm trong Python, trình đọc tệp được di chuyển đến ký tự cuối cùng của tệp. Sau đó, đầu đọc nhảy ngược từng ký tự cho đến khi đến đầu dòng cuối cùng. Sau đó, nó đọc dòng cuối cùng vào bộ nhớDưới đây là 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 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í của trình đọc tệp trong tệp
Trong Python, bạn chỉ có thể tìm kiếm 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
This is the last file
2Ở đâu
Độ lệch chỉ định số lượng ký tự cần di chuyển. Sử dụng giá trị âm để di chuyển lùi
Đối số wherece là đối số tùy chọn có thể được đặt
- hệ điều hành. SEEK_SET hoặc 0—tìm kiếm liên quan đến phần đầu của tệp
- hệ điều hành. SEEK_CUR hoặc 1—tìm kiếm liên quan đến vị trí hiện tại trong tệp
- hệ điều hành. SEEK_END hoặc 2—tìm kiếm liên quan đến phần cuối của tệp
Trước hết, hãy đơn giản hóa đoạn mã trên một chút bằng cách loại bỏ phần xử lý lỗi và các hằng số mô-đun os
This is the last file
3Bâ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ã
- tập tin. seek[-2, 2] có nghĩa là “Chuyển đến ký tự thứ 2 trước khi kết thúc tệp”
- tập tin. read[1] có nghĩa là “Đọc ký tự từ bên phải”
- tập tin. seek[-2, 1] có nghĩa là “Nhảy 2 ký tự còn lại từ ký tự hiện tại”
- b’\n’ là ký tự ngắt dòng ở chế độ nhị phân
- tập tin. dòng đọc []. decode[] đọc dòng và chuyển đổi nó từ nhị phân thành chuỗi
Vì vậy, quá trình là như sau
- Trước tiên, mã nhảy đến ký tự cuối cùng của tệp
- Sau đó, nó sẽ kiểm tra xem ký tự có phải là ký tự ngắt dòng không
- Nếu không, nó sẽ quay lại một ký tự và kiểm tra lại
- Nó lặp lại điều này cho đến khi gặp phải ngắt dòng, điều này cho thấy rằng đã đến đầu dòng cuối cùng
- Sau đó, nó lưu dòng cuối cùng trong bộ nhớ
Lưu ý rằng việc tìm kiếm tệp chỉ hoạt động với 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ý tệp nhị phân, bạn cần nhảy hai ký tự sang trái để đọc một ký tự ở bên phải
Bây giờ, hãy quay lại xử lý lỗi bắt thử để đảm bảo tệp không dài chính xác một dòng. Bởi vì nếu có, hàm seek[] sẽ không bao giờ gặp ký tự ngắt dòng vì không có ký tự nào. Hãy cũng sử dụng các hằng số của mô-đun os SEEK_END và SEEK_CUR thay vì 1 hoặc 2 đơn giản