detect new or modified files with python
file, filesystems, linux, python
Solution
You can use `gio` which is the Filesystem part of GLib (In GLib's python bindings)
import gio
def directory_changed(monitor, file1, file2, evt_type):
if (evt_type in (gio.FILE_MONITOR_EVENT_CREATED,
gio.FILE_MONITOR_EVENT_DELETED)):
print "Changed:", file1, file2, evt_type
gfile = gio.File(".")
monitor = gfile.monitor_directory(gio.FILE_MONITOR_NONE, None)
monitor.connect("changed", directory_changed)
however, your program must be running a GLib mainloop for the events to arrive. One quick way to test that is by using:
import glib
ml = glib.MainLoop()
ml.run()
GLib is a high-level library which is well suited for Applications. You don't have to care about which underlying system it uses for the file monitoring.
I now see you use Fedora Core 2. Really version 2? That might be too old to use GIO in GLib. Pyinotify that has been mentioned might be a better solution, although less portable.
Problem
I'm trying to detect when a new file is created a directory or when an existing file is modified in a directory. I tried searching for a script that would do this (preferably in python or bash) but came up short. My environment is linux with Python 2.6 Related Question