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的Django框架的运行方式及处理流程
Apr 08 Python
深入理解python中的atexit模块
Mar 07 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
python实现维吉尼亚加密法
Mar 20 Python
python超时重新请求解决方案
Oct 21 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
Python读取表格类型文件代码实例
Feb 17 Python
Java Spring项目国际化(i18n)详细方法与实例
Mar 20 Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 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 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
Python NumPy库安装使用笔记
2015/05/18 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
Python中print和return的作用及区别解析
2019/05/05 Python
python爬虫实现中英翻译词典
2019/06/25 Python
django使用JWT保存用户登录信息
2020/04/22 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
小学生自我鉴定
2013/10/12 职场文书
文史专业毕业生自荐信
2013/11/17 职场文书
简短大学毕业感言
2014/01/18 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
作风转变心得体会
2014/09/02 职场文书
授权委托书
2014/09/17 职场文书
2014年项目工作总结
2014/11/24 职场文书
感谢信怎么写
2015/01/21 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis