Python Tail:無阻塞地追蹤日誌檔案
在Python中,可以使用各種方法實現無阻塞或鎖定地追蹤日誌文件。常用的方法是將 subprocess 模組與 select 模組結合使用。
非阻塞尾部:
在 Linux 環境中工作時,您可以利用選擇模組來輪詢運行 tail 命令的子進程的輸出管道。以下是範例:
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)
此程式碼使用 select.poll() 方法來檢查輸出管道上是否有新資料可用。當它偵測到新行時,它會列印它們。
阻止拖尾:
為了更簡單的實現,您可以使用 subprocess 模組而不使用 select 模組。但是,此方法會阻塞腳本,直到尾進程關閉。
import subprocess f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) while True: line = f.stdout.readline() print(line)
此程式碼會在出現新行時讀取並列印新行,但它會阻塞直到尾進程終止。
以上是如何在 Python 中尾隨日誌檔案而不阻塞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!