看门狗观察器方法

Watchdog observer method

我是 python 和 watchdog 的新手,对快速入门示例感到困惑。在示例中,有这样一段代码:

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

self.observer.join()

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

谁能解释一下这三种方法的作用以及循环是如何工作的?

更新:我根据@Amit Gupta 的 post.

更正了我的答案

经过一些研究,我发现这三个方法都属于 threading.Thread 对象。

self.observer.start() 创建一个新线程,

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

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

正如 Erik Allik 在 Use of threading.Thread.join()

中所说,

self.observer.join() 需要正确结束 "it blocks the thread in which you're making the call, until (self.observer) is finished." 的线程

threading.Thread 不提供 stop() 的任何实现。阅读here。 此处的 Stop() 特定于 Observer,在此示例代码中,它将在接收到异常时停止线程。 你写的其余内容都是正确的。