使用 python 时刻中监控文件夹,记录文件夹中文件异常信息
watchdog 库简述
Watchdog 是一款用于监控文件系统事件的 Python 库,Watchdog 优先使用底层原生 API,其次再通过轮询磁盘实现监控,支持多平台操作系统;使用 watchdog 时,当被监视的区域发生文件或目录的创建,修改,或者删除时,就可以引发特定的事件,我们只需要编写针对这些事件的函数即可处理这些变化。
python 版本支持 3.5+
官方网站地址:https://pythonhosted.org/watchdog/
扩展知识:
watchdog 翻译为看门狗。看门狗是一个概念,单片机和 linux 中也都有 watchdog 的应用,例如 Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。
watchdog 是一个 python 的第三方库,使用前需要进行安装;
安装 watchdog
安装方式推荐有很多种,推荐使用 pip;
pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。
安装 pip:
安装 python; 这个是必须安装的;
下载 pip:
官网地址:https://pypi.org/project/pip/#downloads; 下载完毕后,解压
打开命令行窗口,进入到 pip 解压后的目录;执行代码
python3 setup.py install
进行安装,安装完成后,将 pip 加入到系统环境变量中
验证打开命令行窗口,输入 pip list 或者 pip3 list
以上只针对于 windows 系统,其他系统也可以参考;
pip 安装完成后,就可以使用 pip 安装 watchdog:打开命令行窗口,输入执行以下代码,并回车
pip install watchdog
等待提示安装成功既可;
使用 watchdog 实现一个记录文件夹文件操作的日志
代码实现:
导入 watchdog:
import watchdog
记录日志,需要一个日志库 logging,
导入 import logging
首先定义一个日志处理器:
日志处理器继承 watchdog 的事件处理器 events.LoggingEventHandler 重写 on_created 方法,文件被创建时触发;
创建监控对象,
配置日志输出格式,实例化一个监控对象 observers;启动一个线程来监控;
watchdog 主要采用观察者模型。主要机制是,observer 不断检测调用平台依赖代码对监控文件夹进行变动检测,当发现改变时,通知 event_handler 处理。里面主要的三个参与者:文件夹,观察者 observer 和 event_hander;
版权声明: 本文为 InfoQ 作者【技能实验室】的原创文章。
原文链接:【http://xie.infoq.cn/article/dae5bc7adb5b8a89698bcd1e8】。文章转载请联系作者。
评论