Мониторинг подкаталогов на сетевом диске с помощью модуля Python WatchdogPython

Программы на Python
Anonymous
Мониторинг подкаталогов на сетевом диске с помощью модуля Python Watchdog

Сообщение Anonymous »

Я использую этот код для отслеживания создания новых файлов в каталоге на моем сетевом диске и возникновения проблем. Когда я тестирую тот же код в каталоге на локальном диске, проблем не возникает. Когда в каталоге создается новый файл, он вызывает событие и отправляет сообщение на консоль. Если файл создается в его подкаталоге, он также запускает событие и отправляет сообщение.
Но когда я меняю путь обратно к каталогу на сетевом диске, если в расписании указано recursion=True, то в каталоге или подкаталоге не запускаются никакие события, а если события recursion=False запускаются только в запланированном каталоге.
Конечная цель — постоянно контролировать сетевой диск, и каждый раз, когда новый файл загружается в подкаталог просматриваемого каталога, он отправляет файл в соответствующий каталог другого диска через ФТП. Пожалуйста, дайте мне знать, есть ли какая-то проблема, которую я упускаю при использовании Watchdog, или есть ли лучший способ достичь моей цели.
import sys
from time import sleep
from watchdog.events import FileSystemEventHandler
from watchdog.observers.polling import PollingObserver
from pathlib import Path

class MyEventHandler(FileSystemEventHandler):
def on_created(self, event):
path1=Path(event.src_path)
parpath=path1.parent
print("New file created in " + str(parpath))
return super().on_created(event)

if __name__ == "__main__":
path = /network/drive

event_handler = MyEventHandler()
observer = PollingObserver()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()


Подробнее здесь: https://stackoverflow.com/questions/708 ... dog-module

Вернуться в «Python»