看门狗观察器方法
Watchdog observer method
我是 python 和 watchdog 的新手,对快速入门示例感到困惑。在示例中,有这样一段代码:
self.observer.start()
try:
while True:
time.sleep(5)
except:
self.observer.stop()
print('Error')
self.observer.join()
我找不到任何关于 start
、stop
和 join
方法的文档。另外,虽然知道 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,在此示例代码中,它将在接收到异常时停止线程。
你写的其余内容都是正确的。
我是 python 和 watchdog 的新手,对快速入门示例感到困惑。在示例中,有这样一段代码:
self.observer.start()
try:
while True:
time.sleep(5)
except:
self.observer.stop()
print('Error')
self.observer.join()
我找不到任何关于 start
、stop
和 join
方法的文档。另外,虽然知道 try except 中的 while 循环可能使观察者每 5 秒 运行,但我不明白它是如何工作的?
谁能解释一下这三种方法的作用以及循环是如何工作的?
更新:我根据@Amit Gupta 的 post.
更正了我的答案经过一些研究,我发现这三个方法都属于 threading.Thread 对象。
self.observer.start()
创建一个新线程,
While True:
time.sleep(1)
保留主线程 运行
当程序停止时,self.observer.stop()
在线程终止之前做一些工作。 (@Amit Gupta)
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,在此示例代码中,它将在接收到异常时停止线程。 你写的其余内容都是正确的。