Python中使用Inotify监控文件实例


Posted in Python onFebruary 14, 2015

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 相关文章推荐
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
python中的字典操作及字典函数
Jan 03 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
python模拟实现斗地主发牌
Jan 07 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
Python中实现的RC4算法
Feb 14 #Python
Python脚本实现网卡流量监控
Feb 14 #Python
Centos5.x下升级python到python2.7版本教程
Feb 14 #Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 #Python
Python压缩和解压缩zip文件
Feb 14 #Python
Python简单日志处理类分享
Feb 14 #Python
Python魔术方法详解
Feb 14 #Python
You might like
php输出指定时间以前时间格式的方法
2015/03/21 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
php for 循环使用的简单实例
2016/06/02 PHP
FCK调用方法..
2006/12/21 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
总结js函数相关知识点
2018/02/27 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
python批量替换多文件字符串问题详解
2018/04/22 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Python使用re模块验证危险字符
2020/05/21 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
后勤主管工作职责
2013/12/07 职场文书
给物业的表扬信
2014/01/21 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
个人德育工作总结
2015/03/05 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
技术转让协议书
2016/03/19 职场文书
Python实现单例模式的5种方法
2021/06/15 Python