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实现基于权重的随机数2种方法
Apr 28 Python
初步剖析C语言编程中的结构体
Jan 16 Python
使用Flask集成bootstrap的方法
Jul 24 Python
使用TensorFlow实现SVM
Sep 06 Python
python实现nao机器人手臂动作控制
Apr 29 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 Python
python批量处理文件或文件夹
Jul 28 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
Django设置Postgresql的操作
May 14 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
python如何删除文件、目录
Jun 23 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
PHP 数组遍历顺序理解
2009/09/09 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
JavaScript使用localStorage存储数据
2019/09/25 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
初中学生操行评语
2014/12/26 职场文书
市场营销计划书范文
2015/01/16 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python