看门狗观察者方法

时间:2017-06-07 00:24:53

标签: python methods python-watchdog

我是python和watchdog的新手,并且被quickstart示例搞糊涂了。在这个例子中,有一段代码如下:

self.observer.start()
try:
    while True:
        time.sleep(5)
except:
    self.observer.stop()
    print('Error')

self.observer.join()

我找不到关于startstopjoin方法的任何文档。另外,虽然知道while循环内部尝试除了可能使观察者每5秒运行一次,但我不明白它是如何工作的?

有人可以解释一下这三种方法做了什么以及循环如何工作?

2 个答案:

答案 0 :(得分:1)

更新:我根据@Amit Gupta的帖子更正了我的答案。

经过一番研究后,我发现所有三种方法都属于threading.Thread对象。

self.observer.start()创建一个新主题,

While True: time.sleep(1)使主线程保持运行

当程序停止时,self.observer.stop()在线程终止之前做了一些工作。 (@Amit Gupta)

self.observer.join()需要正确结束线程“它阻止你正在进行调用的线程,直到(self.observer)完成。”正如Erik Allik在Use of threading.Thread.join()

中所说的那样

答案 1 :(得分:0)

threading.Thread没有为stop()提供任何实现。阅读here。 这里的Stop()特定于Observer,在这个示例代码中,它将在接收异常时停止线程。 你写的其他东西是正确的。