Прервать цикл уведомлений 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 прерывает цикл и останавливает средство уведомления.