commit | 258edf14db034f24ebaf0ff53dd04c64b8fe81c2 | [log] [tgz] |
---|---|---|
author | Gora Khargosh <gora.khargosh@gmail.com> | Sun Nov 28 18:42:43 2010 +0530 |
committer | Gora Khargosh <gora.khargosh@gmail.com> | Sun Nov 28 18:42:43 2010 +0530 |
tree | 7604b7ed91dbe20736ef9ccd4b62bc7a443c2fdf | |
parent | 5335ead8174d507d75afcdd8e03666ab9c381be6 [diff] |
Add python2.5 as a dependency. Signed-off-by: Gora Khargosh <gora.khargosh@gmail.com>
Python API and shell utilities to monitor file system events.
A simple program that uses watchdog to monitor directories specified as command-line arguments and logs events generated.
import sys import time from watchdog import Observer from watchdog.events import FileSystemEventHandler import logging logging.basicConfig(level=logging.DEBUG) class MyEventHandler(FileSystemEventHandler): def catch_all_handler(self, event): logging.debug(event) def on_moved(self, event): self.catch_all_handler(event) def on_created(self, event): self.catch_all_handler(event) def on_deleted(self, event): self.catch_all_handler(event) def on_modified(self, event): self.catch_all_handler(event) event_handler = MyEventHandler() observer = Observer() observer.schedule('a-unique-name', event_handler, sys.argv[1:], recursive=True) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.unschedule('a-unique-name') observer.stop() observer.join()
Watchdog comes with a utility script called watchmedo
. Please type watchmedo --help
at the shell prompt to know more about this tool.
Here is how you can log the current directory recursively for events related only to *.py
and *.txt
files while ignoring all directory events:
watchmedo log --patterns="*.py;*.txt" --ignore-directories --recursive .
Watchdog is licensed under the terms of the MIT License
Copyright (C) 2010 Gora Khargosh <gora.khargosh@gmail.com> and the Watchdog authors.
Project source code at Github
Please report bugs at the Github issue tracker.