ホームページ >バックエンド開発 >Python チュートリアル >ポーリングせずに特定のファイルの変更を効率的に監視するにはどうすればよいですか?
ポーリングを行わずにファイルの変更を監視する
特定のログ ファイルへの変更をリアルタイムで追跡する必要がある場合は、次のことを避けることが重要です。ポーリング技術を使用します。より効率的なアプローチは、ファイル システムのイベント通知を利用することです。
win32file モジュールの使用
PyWin32 ライブラリの win32file.FindNextChangeNotification 関数を使用すると、ファイルの変更を監視できます。 。ただし、特定のファイルを監視する機能は直接提供されません。
Watchdog の紹介
別の解決策は、Watchdog ライブラリを使用することです。特定のファイルやディレクトリへの変更の監視など、ファイル システム イベントを監視するためのクロスプラットフォーム API を提供します。
ウォッチドッグを使用してファイルの変更を監視する方法は次のとおりです。
import watchdog.observers import watchdog.events class FileChangeHandler(watchdog.events.FileSystemEventHandler): def on_modified(self, path, filename): # Handle file changes here print(f"File modified: {filename}") observer = watchdog.observers.Observer() observer.schedule(FileChangeHandler(), path, recursive=False) observer.start() observer.join()
このスクリプトは、指定されたファイルへの変更を自動的に検出し、変更されたファイルで on_modified メソッドを呼び出します。 filename.
注: マップされたネットワーク ドライブで Watchdog を使用すると、Windows がネットワーク ボリューム上のファイル変更通知を処理する方法に制限があるため、機能しない可能性があります。
以上がポーリングせずに特定のファイルの変更を効率的に監視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。