打破pyinotify通知程序循环

时间:2017-12-11 12:11:23

标签: python 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

如何打破线程循环并返回主程序?

2 个答案:

答案 0 :(得分:2)

The documentation声明:

  

notifier.loop()
  在我们输入c-c(sigint)

之前,对此方法的调用是阻塞的

这就是你需要做的。 发送sigint信号。 一些方法:

答案 1 :(得分:0)

从0.9.0版开始,您可以通过传递回调函数来停止通知程序循环。评估为True时,中断循环并停止通知程序。

https://github.com/seb-m/pyinotify/wiki/Recent-Developments#changes-introduced-with-pyinotify-090