使用pyinotify监控文件系统的变化

 

    pyinotify依赖Linux内核inotify功能,它需要在2.6.13版本的内核的Linux系统上运行。

1. 安装pyinotify#

pip install pyinotify

安装完后可以直接在命令行上运行

python -m pyinotify /tmp

2. 使用Notifier#

  Notifiter是pyinotify模块最重要的类,用来读取通知和处理事件,其中WatchManage对象是必传的参数,

WatchManager保存了需要监视的文件和目录,以及监视哪些事件。

 

 3. 事件处理器#

   定制事件处理方式的方法是继承ProcessEvent类,并实现process_EVNET_NAME方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import pyinotify
 
wm = pyinotify.WatchManager()
mask = pyinotify.IN_DELETE | pyinotify.IN_CREATE
 
class EventHandler(pyinotify.ProcessEvent):
    def process_IN_CREATE(self, event):
        print("Creating:", event.pathname)
 
    def process_IN_DELETE(self, event):
        print("Removing:", event.pathname)
 
handler = EventHandler()
notifier = pyinotify.Notifier(wm, handler)
wdd = wm.add_watch('/tmp', mask, rec=True)
 
notifier.loop()

 

利用pyinotify可以做很多有趣的事情:参考一个有趣的命令行工具:https://github.com/copton/react 

posted @   头痛不头痛  阅读(1977)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示
主题色彩