Hi all, I was writing a daemon to continuously check for changes in a directory and then process the new files, I was polling every X seconds, but I decided I should give dnotify a try in Python. Here is my test program, I just want to share it with others on the list, as it is a very nice way to watch a directory as polling is ugly (it is Linux specific, though)
========== #!/usr/bin/env python # This checks the implementation for dnotify, uses fcntl and signals import signal from fcntl import * import os #set event handler for SIGIO, otherwise the program will terminate signal.signal(signal.SIGIO, lambda signum, stack:None) # Configure fcntl for a directory # wanted: DN_MODIFY DN_CREATE DN_ATTRIB DN_DELETE DN_RENAME DN_MULTISHOT dnot_dir = "/var/data/in" # builtin open() will refuse to open a directory(!) filep = os.open(dnot_dir, os.O_RDONLY) while True: # register the service fcntl(filep, F_NOTIFY, DN_MODIFY|DN_CREATE|DN_ATTRIB|DN_DELETE|DN_RENAME) # block until signal is received signal.pause() print "EVENT!" ================= _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor