Dateierstellung mit Watchdog erkennen

Ich versuche zu erkennen, wann eine Datei mit einem bestimmten Namen in einem Verzeichnis erstellt wird. Ich mache es dankWachhund. Die Erstellung wird korrekt erkannt, aber ich weiß nicht, wie ich die Anwendung nach Abschluss der Erkennung ordnungsgemäß beenden kann.

Mein Code ist der folgende:

#!/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))

Ich bin neu in Python und kann nicht herausfinden, was falsch ist. Die Erkennung scheint in einem dedizierten Thread geplant zu sein, und die join () -Methode wartet darauf, dass dieser Thread beendet wird. Daher nehme ich an, dass ich nicht die richtige Methode für den Beobachter aufrufe, um das Warten / Schleifen zu beenden, aber die Watchdog-Dokumentation scheint wirklich nicht klar zu sein, welche Methoden verwendet werden können.

Hat jemand eine Idee, wie ich mein Ziel erreichen kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage