Прервать цикл уведомлений pyinotify

Я использую pyinotify.notifier отслеживать изменения в текстовом файле.

Когда я получаю конкретное изменение в нем, я хочу разорвать цикл уведомлений. Используя notifier.stop() Кажется, не работает.

Вот что я пытаюсь сделать:

class ModHandler(pyinotify.ProcessEvent):
    def process_IN_MODIFY(self, evt):
        #... Do Stuff
        if "Expected change":
               #break notifier loop

if __name__ == "__main__":

    handler = ModHandler()
    wm = pyinotify.WatchManager()
    notifier = pyinotify.Notifier(wm, handler)
    wdd = wm.add_watch('example.file', pyinotify.IN_MODIFY)
    notifier.loop()
    #when finished the loop, do more stuff

Как можно разорвать цикл и вернуться в основную программу?

1 ответ

Решение

В документации говорится, что:

notifier.loop()
Вызов этого метода блокируется, пока мы не введем c-c (SIGINT)

Вот что вам нужно сделать. Отправить сигнал Sigint. Некоторые способы сделать это:

Начиная с версии 0.9.0, вы можете остановить цикл уведомлений, передав функцию обратного вызова. При оценке True прерывает цикл и останавливает средство уведомления.

https://github.com/seb-m/pyinotify/wiki/Recent-Developments

Другие вопросы по тегам