pyinotify: обработка триггеров IN_MODIFY - PullRequest
1 голос
/ 15 июля 2010

Я пытаюсь посмотреть каталог и ищу модификации файла.Думая об использовании pyinotify.Проблема заключается в том, что при использовании события IN_MODIFY для проверки изменения файла запускается довольно много событий, если я копирую даже небольшой файл, скажем, 12 МБ, в каталог по сети.справиться с таким количеством триггеров.Я хочу, чтобы вызвать только одно событие, после того, как файл скопирован.Как мне этого добиться?

Любой гуру Pyinotify может помочь

1 Ответ

2 голосов
/ 15 июля 2010

Попробуйте изменить IN_MODIFY на IN_CLOSE_WRITE.Событие IN_CLOSE_WRITE наступает при закрытии доступного для записи файла.Это должно произойти только один раз, если только программа, копирующая файл, не захочет закрыть файл несколько раз.

Возможно, вам больше всего нужно это изменение, но если нет, то этот основной код может быть очень полезным инструментом для просмотра того, какие события происходят, когда.С его помощью вы сможете определить, какое событие использовать.


# 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()
...