网络编程
位置:首页>> 网络编程>> Python编程>> Python中使用Inotify监控文件实例

Python中使用Inotify监控文件实例

作者:junjie  发布时间:2021-03-03 14:17:05 

标签:Python,Inotify,监控文件

Inotify地址:访问


# -*- coding:utf-8 -*-

import os
import pyinotify
from 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()
     break

if __name__ == "__main__":
  auto_compile(WATCH_PATH)
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com