Python中使用Inotify监控文件实例
更新时间:2015年02月14日 11:46:05 投稿:junjie
这篇文章主要介绍了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)
相关文章
python使用pip安装SciPy、SymPy、matplotlib教程
今天小编大家分享一篇python使用pip安装SciPy、SymPy、matplotlib教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-11-11
Python使用Webargs实现简化Web应用程序的参数处理
在开发Web应用程序时,参数处理是一个常见的任务,Python的Webargs模块为我们提供了一种简单而强大的方式来处理这些参数,下面我们就来学习一下具体操作吧2024-02-02


最新评论