Python模块学习 - pyinotify

作者: 我爱学python | 来源:发表于2019-05-05 16:32 被阅读12次

pyinotify介绍

    pyinotify模块用来监测文件系统的变化,依赖于Linux内核的inotify功能,inotify是一个事件驱动的通知器,其通知接口从内核空间到用户空间通过三个系统调用。pyinotify结合这些系统调用,提供一个顶级的抽象和一个通用的方式来处理这些功能。

    Linux在2.6.13版本以后才提供了inotify。

安装pyinotify

这里使用如下命令安装pyinotify模块

pip3 install pyinotify

安装完毕后,可以直接在命令行中使用

python3 -m pyinotify /tmp

当/tmp目录发生事件时,会输出事件信息

pyinotify模块API

  Notifier是pyinotify模块最重要的类,用来读取通知和处理事件,默认情况下,Notifier处理事件的方式是打印事件。

  Notifier类在初始化时接受多个参数,但是只有WatchManager对象是必须传递的参数,WatchManager对象保存了需要监视的文件和目录,以及监视文件和目录的哪些事件,Notifier类根据WatchManager对象中的配置来决定如何处理事件。

事件标志

  pyinotify 仅仅是对 inotify 的Python封装,inotify提供了多种事件,基本上事件名称和含义都是相同的。常用的事件标志有:

上面列举的是事件的标志位,我们可以用'与'来关联监控多个事件。

1multi_event = pyinotify.IN_OPEN | pyinotify.IN_CLOSE_NOWRITE

PS:python3中 IN_CLOSE好像被移除了

事件处理

前面的例子,我们使用的都是默认的事件处理方式:打印在屏幕上,而很多情况下我们需要定制事件的处理方式,来实现特殊的功能。

定制事件需要继承ProcessEvent类,针对需要处理的事件编写 process_事件名(self,event) 函数即可

相关文章

  • Python模块学习 - pyinotify

    pyinotify介绍 pyinotify模块用来监测文件系统的变化,依赖于Linux内核的inotify功能...

  • 用pyinotify监控Linux文件系统

    模块事件 过程wm = pyinotify.WatchManager() 创建监控实例wm.add_watch(...

  • Python 中的 logging 模块 学习

    参考资料: Python中的logging模块 python 的日志logging模块学习 python logg...

  • 2018-06-29

    python学习 学习python字符串、列表、元组、字典、日期和时间模块

  • Python模块学习

    注:采转归档,自己学习查询使用 python模块学习:anydbm, shelvePython模块学习:atexi...

  • 大师兄的Python学习笔记(十): 多进程和多线程

    大师兄的Python学习笔记(九): logging模块与日志大师兄的Python学习笔记(十一): 时间模块ti...

  • Python学习笔记

    Python学习笔记 模块 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package...

  • Python常用模块

    Python常用模块之time模块 Python常用模块之os模块 Python常用模块之sys模块 Python...

  • pyinotify

    import os from pyinotify import WatchManager, Notifier,Pr...

  • python解释器

    # python 解释器模块开发问题(自我学习的成长之路) 在python面向对象模块开发过程中,模块的搜索顺序根...

网友评论

    本文标题:Python模块学习 - pyinotify

    本文链接:https://www.haomeiwen.com/subject/knshoqtx.html