Python 监控文件增加、修改、删除等变化

您所在的位置:网站首页 python系统监控 Python 监控文件增加、修改、删除等变化

Python 监控文件增加、修改、删除等变化

2023-09-11 18:45| 来源: 网络整理| 查看: 265

现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。比如说应用到我们之前的高潮提取器:若当前文件夹下增加了一个音乐文件,监控器就调用高潮提取器提取该音乐文件的高潮部分。

这样的监控器写起来也不难,但是很花时间,有许多情况要考虑。不过幸好我们是写Python的,有许多轮子可以使用。

1.安装"看门狗"

“看门狗”模块就是用于监控文件事件变化的一个Python"轮子",代码架构优秀,可以注册许多事件处理器,方便用户做自定义操作。如果你还没有安装Python,请看这篇文章《Python详细安装指南》,在终端输入以下命令即可安装看门狗:

pip install watchdog 2.基本使用

看门狗的使用其实不复杂,请认真看以下代码和注释:

import sys import time import logging from watchdog.observers import Observer from watchdog.events import LoggingEventHandler if __name__ == "__main__": logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S') path = sys.argv[1] if len(sys.argv) > 1 else '.' # 生成事件处理器对象 event_handler = LoggingEventHandler() # 生成监控器对象 observer = Observer() # 注册事件处理器,配置监控目录 observer.schedule(event_handler, path, recursive=True) # 监控器启动——创建线程 observer.start() # 以下代码是为了保持主线程运行 try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() # 主线程任务结束之后,进入阻塞状态,一直等待其他的子线程执行结束之后,主线程再终止 observer.join()

可以看到代码中有几个关键步骤,1.配置各项信息;2.生成事件处理器、监控器;3.注册事件处理器、配置目录、递归执行(即同时监控子文件夹);4.启动。

其实,看门狗的observer是基于 threading.Thread 对象的,所以observer很多属性都继承了 threading.Thread 的属性。

如果你不带参数地运行该脚本,就是要监控脚



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3