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读取csv文件示例(python操作csv)
Mar 11 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
Python代码缩进和测试模块示例详解
May 07 Python
Python字典的核心底层原理讲解
Jan 24 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
tensorflow使用指定gpu的方法
Feb 04 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
Python如何操作docker redis过程解析
Aug 10 Python
python操作toml文件的示例代码
Nov 27 Python
Django缓存Cache使用详解
Nov 30 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快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
vue脚手架搭建过程图解
2018/06/06 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
幼儿园教师考核制度
2014/02/01 职场文书
创建无烟单位实施方案
2014/03/29 职场文书
实习协议书范本
2014/04/22 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
加强作风建设心得体会
2014/10/22 职场文书
党校个人总结
2015/03/04 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python