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中的多进程与多线程的使用
Apr 07 Python
整理Python中的赋值运算符
May 13 Python
python 网络编程详解及简单实例
Apr 25 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
python获取代码运行时间的实例代码
Jun 11 Python
Python基于百度云文字识别API
Dec 13 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
python中tab键是什么意思
Jun 18 Python
python playwright 自动等待和断言详解
Nov 27 Python
Python中如何处理常见报错
Jan 18 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 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漏洞小结
2012/02/05 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
网上抓的一个特效
2007/05/11 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
js操作table示例(个人心得)
2013/11/29 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
jQuery为某个div加入行样式
2017/06/09 jQuery
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
Python import自定义模块方法
2015/02/12 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Python 列表反转显示的四种方法
2020/11/16 Python
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
文秘应聘自荐书范文
2014/02/18 职场文书
运动会宣传稿100字
2015/07/23 职场文书
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis