pyinotify安装和使用

pyinotify安装


[code]
git clone https://github.com/seb-m/pyinotify.git
cd pyinotify/
python setup.py install
[/code]

pyinotify使用


[php]
#!/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')
[/php]
注意:
[code]
update_watch(self, wd, mask=None, proc_fun=None, rec=False, auto_add=False, quiet=True)
[/code]
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.

标签:Linux, Python