首页 > 编程 > Python > 正文

Python中使用Inotify监控文件实例

2020-02-23 06:25:08
字体:
来源:转载
供稿:网友

Inotify地址:访问

# -*- coding:utf-8 -*-import osimport pyinotifyfrom functions import *WATCH_PATH = '' #监控目录if not WATCH_PATH:  wlog('Error',"The WATCH_PATH setting MUST be set.")  sys.exit()else:  if os.path.exists(WATCH_PATH):    wlog('Watch status','Found watch path: path=%s.' % (WATCH_PATH))  else:    wlog('Error','The watch path NOT exists, watching stop now: path=%s.' % (WATCH_PATH))    sys.exit()class OnIOHandler(pyinotify.ProcessEvent):  def process_IN_CREATE(self, event):    wlog('Action',"create file: %s " % os.path.join(event.path,event.name))  def process_IN_DELETE(self, event):    wlog('Action',"delete file: %s " % os.path.join(event.path,event.name))  def process_IN_MODIFY(self, event):    wlog('Action',"modify file: %s " % os.path.join(event.path,event.name))def auto_compile(path = '.'):  wm = pyinotify.WatchManager()  mask = pyinotify.IN_CREATE | pyinotify.IN_DELETE | pyinotify.IN_MODIFY  notifier = pyinotify.ThreadedNotifier(wm, OnIOHandler())  notifier.start()  wm.add_watch(path, mask,rec = True,auto_add = True)  wlog('Start Watch','Start monitoring %s' % path)  while True:    try:      notifier.process_events()      if notifier.check_events():        notifier.read_events()    except KeyboardInterrupt:      notifier.stop()      breakif __name__ == "__main__":   auto_compile(WATCH_PATH)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表