Hướng dẫn python tail file - tệp đuôi trăn
Sử dụng mô -đun SH (Cài đặt PIP SH):
[update] Vì sh.tail với ________ 6 = true là một trình tạo, bạn có thể:
Sau đó, bạn có thể "getnewdata" với:
Lưu ý rằng nếu bộ đệm đuôi trống, nó sẽ chặn cho đến khi có nhiều dữ liệu hơn (từ câu hỏi của bạn, không rõ bạn muốn làm gì trong trường hợp này). [update]
Một trình tạo container đặt cuộc gọi đuôi bên trong một vòng lặp thực sự và bắt gặp các ngoại lệ I/O cuối cùng sẽ có hiệu ứng gần như tương tự của -F.
Nếu tệp không thể truy cập, trình tạo sẽ trả về không. Tuy nhiên, nó vẫn chặn cho đến khi có dữ liệu mới nếu tệp có thể truy cập được. Vẫn chưa rõ đối với tôi những gì bạn muốn làm trong trường hợp này. Cách tiếp cận Raymond Hettinger có vẻ khá tốt:
Trình tạo này sẽ trả về '' nếu tệp không thể truy cập hoặc nếu không có dữ liệu mới. [update]
Tôi nghĩ rằng thứ hai sẽ xuất ra mười dòng cuối cùng bất cứ khi nào quá trình đuôi kết thúc, mà với Có lẽ nếu bạn cập nhật câu hỏi của mình để giải thích mục tiêu thực sự của bạn là gì (lý do tại sao bạn muốn bắt chước đuôi -retry), bạn sẽ nhận được câu trả lời tốt hơn.
Tất nhiên, Tail sẽ hiển thị 10 dòng cuối cùng theo mặc định ... bạn có thể định vị con trỏ tệp ở cuối tệp bằng tệp.Seek, tôi sẽ để lại một triển khai thích hợp như một bài tập cho người đọc. IMHO Phương pháp tiếp cận tệp.read () thanh lịch hơn nhiều so với một giải pháp dựa trên quy trình con. Trong bài đăng trên blog này, chúng tôi thấy cách chúng tôi có thể tạo một phiên bản đơn giản của Chúng ta đang làm gì? Chúng tôi muốn đọc một tệp bằng Python và tiếp tục đọc tệp, vô hạn. Chúng tôi muốn theo dõi một tập tin. Về cơ bản, chúng tôi muốn mô phỏng lệnh Unix ____ không có: `đuôi -f` là một lệnh được sử dụng rộng rãi khi giám sát nhật ký máy chủChúng tôi đang đọc một luồng dữ liệu vô hạn của người Viking. Dưới đây là một vài điều cần ghi nhớ:
Làm sao chúng ta làm điều này? Chúng tôi sẽ viết một kịch bản Python đơn giản và sử dụng các khái niệm pythonic như 1.Tuyên bố miễn trừ trách nhiệm: Trong một kịch bản sản xuất trong thế giới thực, nó có lẽ là một ý tưởng xấu (không thể mở rộng) bằng cách sử dụng Python để tạo ra một cái gì đó như thế này, chúng tôi đã làm điều này chỉ để giải trí. Hãy để xem một số mã import time Những gì xảy ra ở đây:
Một chút trên máy phát điện Ở đây, 2 là một loại chức năng đặc biệt gọi là trình tạo. Điều gì xảy ra dưới mui xe:generator. What happens under the hood:
Tóm lại: Trình tạo là các hàm trả về các đối tượng, có thể được lặp lại, thường được tiêu thụ trong các vòng lặp. Sự kết luận Các luồng vô hạn là khó khăn, máy phát điện rất vui và Python rất tiện dụng! Đây là một số tài nguyên tuyệt vời trên máy phát điện:
|