Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2422658
  • 博文数量: 298
  • 博客积分: 7876
  • 博客等级: 准将
  • 技术积分: 5500
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-23 13:39
文章存档

2013年(2)

2012年(142)

2011年(154)

分类: Python/Ruby

2012-03-15 16:46:35

Python监视文件变化

 

部分转自:http://blog.csdn.net/hechaoyuyu/article/details/6384418

通过pyinotify模块进程文件/文件夹的监视,如果还需要监视其他内容,比如修改等等,可以查看help(pyinotify).

不知道为啥,先前能够监视文件,现在只能监视文件夹,请注意!!
#!/usr/bin/env python
#coding=utf-8

import os
import gobject
from  pyinotify import  WatchManager, Notifier, ProcessEvent, ThreadedNotifier, IN_DELETE, IN_CREATE,IN_MOVED_TO,IN_MOVED_FROM

 
class MonitorFile(ProcessEvent):                                         
    def process_IN_CREATE(self, event):
        print   " CREATE: %s "  %   os.path.join(event.path, event.name)

    def process_IN_DELETE(self, event):
        print   " DELETE: %s "  %   os.path.join(event.path, event.name)

    def process_IN_MOVED_TO(self, event):
        print   " MOVED_TO: %s "  %   os.path.join(event.path, event.name)

    def process_IN_MOVED_FROM(self, event):
        print   " MOVED_FROM: %s "  %   os.path.join(event.path, event.name)

path = "/usr/local/etc/"
gobject.threads_init()
wm = WatchManager()
mask = IN_DELETE|IN_CREATE|IN_MOVED_TO|IN_MOVED_FROM
notifier = ThreadedNotifier(wm, MonitorFile ())
wm.add_watch(path, mask,rec=True)
notifier.start()
 

if __name__ == "__main__":

    try:
        while True:
            pass
    except Exception,e:
         print str(e)
         notifier.stop()
阅读(7278) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~