commit | 2a2cbed28116902738b2b83b2ca74b3d3026332d | [log] [tgz] |
---|---|---|
author | Gora Khargosh <gora.khargosh@gmail.com> | Mon Nov 29 16:01:45 2010 +0530 |
committer | Gora Khargosh <gora.khargosh@gmail.com> | Mon Nov 29 16:01:45 2010 +0530 |
tree | e367c71ce56c0148d257e3f5bc651dab863b7707 | |
parent | 4553237b2d9962028be266afd0830fcee862d05d [diff] |
Add an echo module that lets me trace calls 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 .
If you'd like to execute shell commands in response to events you can use the shell-command
subcommand like this:
watchmedo shell-command --patterns="*.py;*.txt" --recursive --command='echo "${watch_src_path}"' .
Please see the help information for these commands by typing:
watchmedo [command] --help
Installing from PyPI using pip:
pip install watchdog
Installing from PyPI using easy_install:
easy_install watchdog
Installing from source:
python setup.py install
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.