网络编程
位置:首页>> 网络编程>> Python编程>> Python中使用Inotify监控文件实例

Python中使用Inotify监控文件实例

作者:junjie  发布时间:2021-03-03 14:17:05 

标签:Python,Inotify,监控文件

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)
0
投稿

猜你喜欢

  • 从有道词典网页获取某单词的中文解释。import reimport urllibword=raw_input('input a wo
  • 简化了一下 YUI3 中的沙箱实现 方式:if (typeof Sandbox === 'undefined' || !Sa
  • 以一种有意义的方式组织数据可能是一项挑战。有时你需要的可能是一个简单的排序,但是通常你需要做更多,你需要分组来进行分析和统计。幸运的是,SQ
  • 类:在HTML中当表现class属性的时候,人们可以用点(.)号来作为~=号的一个替代选择,所以div.value等同于div[class~
  • 我一般是不看别人写的代码的,为啥?累!而且这位同志给的还是经过压缩的!汗。。。考我是不是?还有,这位同志也不给个示例的代码,只说是代码没有问
  • 《页面表达常用方式》是整个“web交互设计方法”中的一部分:设计师在设计页面时,应该在页面上建立许多视觉层次,引导用户的视觉焦点。把用户的注
  •     做过主页的朋友,几乎没有一个人没用到它,它使我们排版更加轻松。有人说DW的表格没有Fp的好用,我认为不
  • 1.线性与非线性回归线性回归 Linear Regression:两个变量之间的关系是一次函数关系的—&mdas
  • 最近做了一个项目,其中有项目需求涉及到手机号验证码,就是当用户点击获取验证码之后我们会发送一条信息到用户手机,然后就会出现一个倒计时按钮,很
  • 最近的项目涉及到很多表单的制作,特别是复选框(checkbox)和单选框(radio)。但是在前端开发过程中发现,单(复)选框和它们后面的提
  • 1、单个关键字加亮代码: <div id="txt">  用JS让文章内容指定
  • 父层:  <div class="col-xs-12">   <div class
  • 在XHTML标签中有一些标签的作用是相似的,当然这里的相似是指语义相似,以至于很多人都不清楚这些相似的标签如何使用,那么今天的主题就是分解相
  • 不过有一个简单的执行cmd命令方法: SQL> host net user User accounts for \\PC-ATQHJ4
  • python中有很多字符串连接方式,今天在写代码,顺便总结一下:最原始的字符串连接方式:str1 + str2python 新字符串连接语法
  • 1引言实现磁带备份数据的功能有两方面的困难:首先,SQL Server(以下简称SQL)所提供的数据库的整体备份及恢复功能不能直接满足本系统
  • 当1980年Three Rivers公司第一次推出图形用户界面Perq,产生GUI这个概念的时候,不知道他们有没有想过今天图形界面设计竟然会
  • 在日常学习工作过程中,我们难免需要复用以前的项目,这里讲下复用 Django 项目并重命名的过程。1.修改项目名称,使用 pycharm -
  • 1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。2、1024*768下,网页宽度保持在1002
  • 之前在《首都机场的点烟器》中分析了一个软件系统所处的状态并且列举了不同的状态所需要的展示给用户的各类信息,我们先简单回顾一下:要设计一个软件
手机版 网络编程 asp之家 www.aspxhome.com