Lau*_*ent 20 python multithreading termination exit-code watchdog
我试图检测何时在目录中创建具有给定名称的文件.我正在这样做,感谢看门狗.正确检测到创建但我不知道如何在检测完成后正确终止应用程序.
我的代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import sys
import time
from watchdog.events import FileSystemEventHandler
from watchdog.observers import Observer
logging.basicConfig(level=logging.ERROR)
class MyEventHandler(FileSystemEventHandler):
def __init__(self, observer, filename):
self.observer = observer
self.filename = filename
def on_created(self, event):
print "e=", event
if not event.is_directory and event.src_path.endswith(self.filename):
print "file created"
self.observer.unschedule_all()
self.observer.stop()
def main(argv=None):
path = argv[1]
filename = argv[2]
observer = Observer()
event_handler = MyEventHandler(observer, filename)
observer.schedule(event_handler, path, recursive=False)
observer.start()
observer.join()
return 0
if __name__ == "__main__":
sys.exit(main(sys.argv))
Run Code Online (Sandbox Code Playgroud)
我是python的新手,我无法弄清楚出了什么问题.检测似乎是在专用线程中调度的,join()方法正在等待此线程终止.因此,我认为我没有在观察者上调用正确的方法来停止等待/循环,但看门狗文档似乎并不清楚指出可能使用的方法是什么.
有人知道如何实现我的目标吗?
| 归档时间: |
|
| 查看次数: |
10166 次 |
| 最近记录: |