Tôi đang cố gắng phát hiện khi một tệp có tên đã cho được tạo trong một thư mục. Tôi đang làm điều đó nhờ vào watchdog. Việc tạo ra được phát hiện chính xác nhưng tôi không biết làm thế nào để chấm dứt các ứng dụng đúng khi phát hiện được thực hiện.Phát hiện việc tạo tập tin với cơ quan giám sát
mảnh My mã như sau:
#!/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))
Tôi mới vào python và tôi không thể tìm ra những gì là sai. Việc phát hiện dường như được lên lịch trong một chuỗi chuyên dụng và phương thức join() đang chờ thread này chấm dứt. Vì vậy, tôi cho rằng tôi không gọi đúng phương pháp trên người quan sát để ngừng chờ đợi/looping, nhưng tài liệu watchdog có vẻ thực sự không rõ ràng để chỉ ra những phương pháp có thể được sử dụng là gì.
Có ai đó có ý tưởng làm cách nào để đạt được mục tiêu của mình không?
Cảm ơn bạn đã đăng cập nhật này – jgyou