pyinotify安装
git clone https://github.com/seb-m/pyinotify.git cd pyinotify/ python setup.py install
pyinotify使用
#!/usr/bin/env python # encoding:utf-8 import os from pyinotify import WatchManager, Notifier, \ ProcessEvent,IN_DELETE, IN_CREATE,IN_MODIFY class EventHandler(ProcessEvent): """事件处理""" def process_IN_CREATE(self, event): print "Create file: %s " % os.path.join(event.path,event.name) def process_IN_DELETE(self, event): print "Delete file: %s " % os.path.join(event.path,event.name) def process_IN_MODIFY(self, event): print "Modify file: %s " % os.path.join(event.path,event.name) def FSMonitor(path='.'): wm = WatchManager() mask = IN_DELETE | IN_CREATE |IN_MODIFY notifier = Notifier(wm, EventHandler()) wm.add_watch(path, mask,auto_add=True,rec=True) print 'now starting monitor %s'%(path) while True: try: notifier.process_events() if notifier.check_events(): notifier.read_events() except KeyboardInterrupt: notifier.stop() break if __name__ == "__main__": FSMonitor('/home/firefoxbug')
注意:
update_watch(self, wd, mask=None, proc_fun=None, rec=False, auto_add=False, quiet=True)
rec (bool) – Optionally adds watches recursively on all subdirectories contained into |wd| directory.
auto_add (bool) – Automatically adds watches on newly created directories in the watch’s path corresponding to |wd|. If |auto_add| is True, IN_CREATE is ored with |mask| when the watch is updated.
via:http://www.tuicool.com/articles/qaANNn