写点什么

使用 python 时刻中监控文件夹,记录文件夹中文件异常信息

作者:技能实验室
  • 2022-10-19
    河南
  • 本文字数:1325 字

    阅读完需:约 1 分钟

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


  • 首先定义一个日志处理器:


from watchdog import events,class loghendler(events.LoggingEventHandler):        def on_created(self, event):        super().on_created(event)        name =event.src_path.split('.')        if name[-1] == 'mp4':            logging.info('filename: %s',event.src_path)            sleep(3)            os.remove(event.src_path)
复制代码


日志处理器继承 watchdog 的事件处理器 events.LoggingEventHandler 重写 on_created 方法,文件被创建时触发;


  • 创建监控对象,


from watchdog import observers#配置输出日志logging.basicConfig(level=logging.INFO,format='%(asctime)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S')path = 'H:/sounds'#定义一个事件处理器#handler_file = events.LoggingEventHandler()handler_file = loghendler()#实例化一个监控对象ob = observers.Observer()ob.schedule(handler_file,path,recursive=True)#启动一个线程运行监控ob.start()while 1:    sleep(1)
复制代码


配置日志输出格式,实例化一个监控对象 observers;启动一个线程来监控;


watchdog 主要采用观察者模型。主要机制是,observer 不断检测调用平台依赖代码对监控文件夹进行变动检测,当发现改变时,通知 event_handler 处理。里面主要的三个参与者:文件夹,观察者 observer 和 event_hander;

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022-07-26 加入

还未添加个人简介

评论

发布
暂无评论
使用python时刻中监控文件夹,记录文件夹中文件异常信息_Python_技能实验室_InfoQ写作社区