1

ディレクトリを監視しようとしていて、ファイルの変更を探しています。pyinotify の使用を考えています。問題は、IN_MODIFY イベントを使用してファイルの変更をチェックしているときに、たとえば 12 MB の小さなファイルをネットワーク経由でディレクトリにコピーすると、かなりの数のイベントがトリガーされることです。

あまり多くのトリガーを処理したくありません。ファイルがコピーされた後、単一のイベントのみをトリガーしたい。どうすればそれを達成できますか?

Pyinotifyの達人なら誰でも助けてくれます

4

1 に答える 1

3

に変更IN_MODIFYしてみてくださいIN_CLOSE_WRITE。書き込み可能なIN_CLOSE_WRITEファイルが閉じられると、イベントが発生します。ファイルをコピーしているプログラムがファイルを複数回閉じることを選択しない限り、これは1回だけ発生するはずです。

上記の変更はおそらく必要なすべてですが、そうでない場合、この基本的なコード は、どのイベントがいつ発生するかを確認するための非常に便利なツールになります。これにより、使用するイベントを決定できるようになります。


# Example: loops monitoring events forever.
#
import pyinotify

# Instanciate a new WatchManager (will be used to store watches).
wm = pyinotify.WatchManager()
# Associate this WatchManager with a Notifier (will be used to report and
# process events).
notifier = pyinotify.Notifier(wm)
# Add a new watch on /tmp for ALL_EVENTS.
wm.add_watch('/tmp', pyinotify.ALL_EVENTS)
# Loop forever and handle events.
notifier.loop()
于 2010-07-15T17:52:38.790 に答える