ホームページ > バックエンド開発 > Python チュートリアル > Python でポーリングせずにファイルの変更を効率的に監視するにはどうすればよいですか?

Python でポーリングせずにファイルの変更を効率的に監視するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-14 05:31:12
オリジナル
608 人が閲覧しました

How Can I Efficiently Monitor File Changes in Python Without Polling?

Python を使用したポーリングなしのファイル変更の監視

問題:
監視したい別のプロセスによって書き込まれたログ ファイルがあります。変化のために。変更が発生するたびに、処理のために新しいデータを読み取る必要があります。

背景:
PyWin32 ライブラリの win32file.FindNextChangeNotification 関数の使用を検討していましたが、その方法がわかりません。特定のファイルを監視するように設定します。

解決策: 導入Watchdog
ポーリングの代わりに、より効率的なオプションは Watchdog ライブラリを使用することです。方法は次のとおりです:

import watchdog.observers
import watchdog.events

class MyEventHandler(watchdog.events.FileSystemEventHandler):
    def on_modified(self, path, metadata):
        # Read the modified log file and perform necessary processing

# Create a Watchdog observer
observer = watchdog.observers.Observer()

# Add the log file path to be watched
observer.schedule(MyEventHandler(), "path/to/log_file")

# Start observing
observer.start()

# Wait indefinitely for changes
observer.join()
ログイン後にコピー

注:
マップされたネットワーク ドライブ上でファイルを監視している場合、Windows は、ネットワーク ドライブ上で行う場合とは異なり、ファイルの更新を「認識」しない可能性があります。ローカルディスク。このようなシナリオでは、別のアプローチを使用することを検討してください。

以上がPython でポーリングせずにファイルの変更を効率的に監視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート