ОС Windows: Python Watchdog определяет путь к файлу назначения для "удаленных" файлов
У меня есть скрипт Python, работающий в Windows с использованием модуля Python Watchdog, который предназначен для рекурсивного обнаружения изменений местоположения файла в папке с папками внутри него. Когда я перемещаю файл во внутренней папке за пределами его текущего местоположения, возникает событие FileDeleted, а не FileMoved. Я хочу быть в состоянии сказать, каково конечное местоположение файла, что я могу сделать на Mac, но НЕ на Windows. Я прочитал эту статью, которая предполагает, что проблема с Windows.
Это мой код:
class Handler(PatternMatchingEventHandler):
@staticmethod
if event.event_type == 'created' or event.event_type == 'modified':
# do something if file created.
elif event.event_type == 'deleted'
# do something if file deleted
elif event.event_type == 'moved':
# do something if file moved
Как сделать так, чтобы событие перемещения файла происходило в отличие от созданного файла, и удалять события? Или есть обходной путь, который позволил бы мне рассматривать DeletedEvent как MovedEvent, получая окончательный путь к файлу?
Любая помощь будет принята с благодарностью!
0 ответов
Попробуйте определить каждое событие отдельно следующим образом:
def on_created(event):
print(f"hey, {event.src_path} has been created!")
def on_deleted(event):
print(f"Someone deleted {event.src_path}!")
def on_modified(event):
print(f"{event.src_path} has been modified")
def on_moved(event):
print(f"someone moved {event.src_path} to {event.dest_path}")
my_event_handler.on_created = on_created
my_event_handler.on_deleted = on_deleted
my_event_handler.on_modified = on_modified
my_event_handler.on_moved = on_moved
В любом случае, я думаю, что в этой ссылке вы найдете нужную информацию: https://www.thepythoncorner.com/2019/01/how-to-create-a-watchdog-in-python-to-look-for-filesystem-changes/