pyinotify: обработка триггеров IN_MODIFY
Я пытаюсь посмотреть каталог и ищу изменения файла. Думая об использовании pyinotify. Проблема заключается в том, что при использовании события IN_MODIFY для проверки изменения файла запускается довольно много событий, если я копирую даже небольшой файл, скажем, 12 МБ, в каталог по сети.
Я не хочу обрабатывать так много триггеров. Я хочу, чтобы вызвать только одно событие, после того, как файл скопирован. Как мне этого добиться?
Любой гуру Pyinotify может помочь
1 ответ
Попробуйте изменить 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()