주어진 이름의 파일이 디렉토리에 생성 된 것을 감지하려고합니다. 나는 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))
내가 파이썬에 새로운 오전과 내가 잘못이 무엇인지 알아낼 수 없습니다. 검색은 전용 스레드에서 스케줄 된 것으로 보이며 join() 메소드는이 스레드가 종료되기를 기다리고 있습니다. 따라서 관찰자에게 대기/반복을 중지하는 올바른 방법을 부르지는 않을 것이라고 생각하지만 워치 독 문서는 실제로 사용할 수있는 방법이 무엇인지 알려주지 못합니다.
누군가 내 목표를 달성 할 수있는 아이디어가 있습니까?
이 업데이트를 게시 주셔서 감사합니다. – jgyou