## For Linux

* **[Pynotify](http://pyinotify.sourceforge.net/)**

    `Pyinotify` is a Python module for monitoring filesystems changes. Pyinotify relies on a Linux Kernel feature (merged in kernel 2.6.13) called `inotify`, which is an event-driven notifier. Its notifications are exported from kernel space to user space through three system calls. `Pyinotify` binds these system calls and provides an implementation on top of them offering a generic and abstract way to manipulate those functionalities.
    
    [Here](http://pyinotify.sourceforge.net/#The_EventsCodes_Class) you can find the list of the events that can be monitored with `Pynotify`.

## For Windows

* **[Watcher](https://pypi.python.org/pypi/watcher)**

    `Watcher` is a low-level `C` extension for receiving file system updates using the `ReadDirectoryChangesW` API on Windows systems. The package also includes a high-level interface to emulate most of the .NET `FileSystemWatcher` API.

* **[Watchdog](https://pypi.python.org/pypi/watchdog/0.5.4)**

    Python API and shell utilities to monitor file system events. Easy install: `$ pip install watchdog`. For more info visit the [documentation](https://pythonhosted.org/watchdog/).



* **[Pywatch](https://github.com/cmheisel/pywatch)**

    A python near-clone of the Linux `watch` command. The `pywatch.watcher.Watcher` class can be told to watch a set of files, and given a set of commands to run whenever any of those files change.

## Multiplatform

* **[Qt's QFileSystemWatcher](http://qt-project.org/doc/qt-4.8/qfilesystemwatcher.html)**

    The `QFileSystemWatcher` class provides an interface for monitoring files and directories for modifications. This class was introduced in `Qt 4.2`.