Я использую сторожевой таймер для наблюдения за каталогом для определенного c шаблона файла.
Имя моего файла выглядит так: myfile-yyyymmdd.csv. Шаблон, который я пытаюсь использовать: myfile - *. Csv
Каталог, в который я помещаю файл: ... / imp / myDir /
Передаваемый watch_directory to FileWatch: ... / imp
Я инициализирую наблюдателя с помощью recursive = True.
Мой код не работает, когда я использую шаблон myfile - *. csv. Это работает, если я использую шаблон * .csv.
Я не уверен, есть ли проблема в моем коде или это ограничение.
Вот фрагмент кода.
class FileWatch():
def __init__(self, watch_directory, patterns, commands, log):
self.script_name = "FileWatch()"
self.observer = PollingObserver()
self.watch_directory = watch_directory
self.patterns = patterns
self.commands = commands
self.log = log
def run(self):
self.event_handler = Handler(self.log, self.commands, patterns=self.patterns)
self.observer.schedule(self.event_handler, self.watch_directory, recursive=True)
self.observer.start()
try:
while True:
time.sleep(5)
except:
self.observer.stop()
log.error(logMessage(self.script_name, "Observer Stopped.") )
self.observer.join()
class Handler(PatternMatchingEventHandler):
def __init__(self, log, commands, patterns=None):
super(Handler, self).__init__(patterns=patterns)
self.log = log
self.commands = commands
def on_created(self, event):
script_name = "Handler - on_created()"
if event.is_directory:
return None
on_event_action("created", event.src_path, self.commands, self.log)
def on_modified(self, event):
script_name = "Handler - on_modified()"
if event.is_directory:
return None
on_event_action("modified", event.src_path, self.commands, self.log)
on_event_action () - это функция, которая проверяет, является ли размер файла стабильным, затем перемещает файл.
Я вызываю FileWatch следующим образом:
watch = FileWatch(watch_directory, patterns, commands, log)
watch.run()
Кто-нибудь сталкивался с этой проблемой раньше? И если да, то как ты решил это?