Monitoring File System Changes (Watchdog)
What watchdog does
watchdogwatchdog lets you react to:
- file created
- file modified
- file deleted
This is useful for:
- auto-processing new files
- syncing folders
Example watcher
watchdog_example.py
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class Handler(FileSystemEventHandler):
def on_created(self, event):
if event.is_directory:
return
print("created:", event.src_path)
if __name__ == "__main__":
import time
path = "."
observer = Observer()
observer.schedule(Handler(), path=path, recursive=True)
observer.start()
print("watching", path)
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()watchdog_example.py
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class Handler(FileSystemEventHandler):
def on_created(self, event):
if event.is_directory:
return
print("created:", event.src_path)
if __name__ == "__main__":
import time
path = "."
observer = Observer()
observer.schedule(Handler(), path=path, recursive=True)
observer.start()
print("watching", path)
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()Notes
- Install dependency:
watchdogwatchdog - Keep handlers fast (offload heavy work)
If this helped you, consider buying me a coffee ☕
Buy me a coffeeWas this page helpful?
Let us know how we did
