1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
from __future__ import annotations
import logging
import sys
import time
from watchdog import events
from watchdog.observers import Observer
logging.basicConfig(level=logging.DEBUG)
class MyEventHandler(events.FileSystemEventHandler):
def catch_all_handler(self, event: events.FileSystemEvent) -> None:
logging.debug(event)
def on_moved(self, event: events.DirMovedEvent | events.FileMovedEvent) -> None:
self.catch_all_handler(event)
def on_created(self, event: events.DirCreatedEvent | events.FileCreatedEvent) -> None:
self.catch_all_handler(event)
def on_deleted(self, event: events.DirDeletedEvent | events.FileDeletedEvent) -> None:
self.catch_all_handler(event)
def on_modified(self, event: events.DirModifiedEvent | events.FileModifiedEvent) -> None:
self.catch_all_handler(event)
def on_closed(self, event: events.FileClosedEvent) -> None:
self.catch_all_handler(event)
def on_closed_no_write(self, event: events.FileClosedNoWriteEvent) -> None:
self.catch_all_handler(event)
def on_opened(self, event: events.FileOpenedEvent) -> None:
self.catch_all_handler(event)
path = sys.argv[1]
event_handler = MyEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
finally:
observer.stop()
observer.join()
|