使用Python 追蹤日誌檔案
人們經常想要追蹤日誌檔案或以其他方式被動地觀察它以查看添加到其中的新內容。這可以透過幾種方式在 Python 中實現。
非阻塞
對於這種方法,可以使用子程序並選擇模組。
import time import subprocess import select f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) p = select.poll() p.register(f.stdout) while True: if p.poll(1): print(f.stdout.readline()) time.sleep(1)
此程式碼開啟一個在指定檔案上執行 tail -F 的子進程,並輪詢其輸出以取得新數據,並在可用時將其列印出來。這種方法不會阻塞主程式。
阻塞
只使用子程序模組可以使用較簡單的阻塞方法。
import subprocess f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) while True: line = f.stdout.readline() print(line)
此程式碼也會在新增新行時列印它們,但它將阻塞,直到尾部程式關閉。
以上是如何在 Python 中追蹤日誌檔案:阻塞與非阻塞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!