Ich verwendete dieses http://brunorocha.org/python/watching-a-directory-for-file-changes-with-python.html Beispiel für die Lösung dieser Aufgabe. Und es hat funktioniert. Wenn ich OOP nicht benutzt habe. Nun, ich versuche, meinen Code zu OOP neu zu schreiben, was ich tat: ich erstellte Datei mit dem Namen MyHandler.pyDas Überwachen eines Verzeichnisses für Dateiänderungen mit Python funktioniert nicht
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from watchdog.events import PatternMatchingEventHandler
class MyHandler(PatternMatchingEventHandler):
patterns = ["*.xml", "*.lxml"]
def __init__(self, logger, myfunction):
self.logger = logger
self.myfunction = myfunction
def process(self, event):
"""
event.event_type
'modified' | 'created' | 'moved' | 'deleted'
event.is_directory
True | False
event.src_path
path/to/observed/file
"""
self.logger.debug("target: {} was {}".format(event.src_path, event.event_type))
self.myfunction()
def on_created(self, event):
self.process(event)
Als nächstes ich dies in meiner anderen Datei nenne, wo ich Funktion zum Lesen von xml:
observer = Observer()
observer.schedule(MyHandler(self.logger, self.read_xml), path=self.mydir)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
Und, wenn ich versuche, dies zu nennen, ich habe:
AttributeError: 'MyHandler' object has no attribute '_ignore_directories'
Wo lese ich Fehler haben? Vor meinen Experimenten mit OOP hatte ich:
Und es hat funktioniert. Jetzt funktioniert mein Skript nicht. Bitte helfen Sie.