Python中使用Inotify监控文件实例
时间:2019-11-20 22:26 来源/作者:junjie
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)
相关文章
热门资讯