1

我在用着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

怎样才能打破线程循环并返回主程序?

4

2 回答 2

3

该文件指出:

notifier.loop()
c-c在我们输入(sigint) 之前,对该方法的调用是阻塞的

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

于 2017-12-11T12:25:14.707 回答
0

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

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

于 2019-09-12T17:01:25.983 回答