ホームページ >バックエンド開発 >Python チュートリアル >Python でポーリングせずにログ ファイルの変更を効率的に監視するにはどうすればよいですか?
Python でのファイル変更の監視
この記事では、ログ ファイルの変更を監視し、処理のために更新されたデータを読み取るという課題について説明します。元の質問では、PyWin32 を使用する可能性がある非ポーリング ソリューションを見つけたいという要望が表明されていました。
この目的のために、Python ライブラリ 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 中国語 Web サイトの他の関連記事を参照してください。