在 Python 中監視檔案變更
本文解決了監視日誌檔案變更並讀取更新資料進行處理的挑戰。最初的問題表達了尋找非輪詢解決方案的願望,可能使用 PyWin32。
為此目的,Python 庫 Watchdog 提供了一個有前景的解決方案。 Watchdog 旨在監控跨多個平台的檔案系統事件。它提供了一個 API,允許開發人員定義自訂事件處理程序,以便在修改或建立檔案時執行特定操作。
使用 Watchdog,可以設定一個簡單的事件處理程序來監視特定日誌檔案並讀取其內容發生任何變化。以下是一個範例:
import watchdog.observers as observers import watchdog.events as events class FileEventHandler(events.FileSystemEventHandler): def on_modified(self, path, event): with open(path, 'r') as f: data = f.read() # Process the new data here # Path to the log file log_path = '/path/to/log.txt' # Create the file handler handler = FileEventHandler() # Create the observer and schedule the log file for monitoring observer = observers.Observer() observer.schedule(handler, log_path, recursive=False) # Start the observer observer.start() # Blocking code to keep the observer running observer.join()
透過此設置,對日誌檔案的任何修改都會觸發 on_modified 方法,該方法進而讀取並處理新資料。透過提供可靠且高效的方式來監控檔案更改,Watchdog 減少了輪詢的需要,並為這項特定要求提供了實用的解決方案。
以上是如何在Python中不輪詢的情況下高效監控日誌檔案變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!