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怎么学好python?
Oct 07 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
Python模拟随机游走图形效果示例
Feb 06 Python
python2.7实现FTP文件下载功能
Apr 15 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
python人民币小写转大写辅助工具
Jun 20 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Python实现个人微信号自动监控告警的示例
Jul 03 Python
Python tkinter制作单机五子棋游戏
Sep 14 Python
Python urlopen()参数代码示例解析
Dec 10 Python
python spilt()分隔字符串的实现示例
May 21 Python
Python+Tkinter制作专属图形化界面
Apr 01 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 MVC模式在网站架构中的实现分析
2010/03/04 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
PHP session 会话处理函数
2016/06/06 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
php接口隔离原则实例分析
2019/11/11 PHP
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
Jquery性能优化详解
2014/05/15 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
赔偿协议书范本
2014/09/12 职场文书
2014年服务员工作总结
2014/11/18 职场文书
政协委员个人总结
2015/03/03 职场文书
医院病假条范文
2015/08/17 职场文书
党员读书活动心得体会
2016/01/14 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
七个非常实用的Python工具包总结
2021/06/15 Python
警用民用对讲机找不同
2022/02/18 无线电