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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 使用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
  • 首先定义一个日志处理器:
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;

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
128 5
|
3月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1047 2
|
2月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
4月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
166 0
|
5月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
1035 0
|
开发者 索引 Python
实践:如何使用python在网页的表格里抓取信息
实践:如何使用python在网页的表格里抓取信息
255 0
|
SQL 关系型数据库 数据库连接
使用python3抓取pinpoint应用信息入库
使用python3通过pinpoint api来获取pinpoint中应用基础信息、上下游链路,并入库
2116 0
|
数据采集 供应链 机器人
Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
562 0
Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
|
定位技术 开发者 Python
Python编程:通过百度地图接口抓取机构的地址和电话信息
Python编程:通过百度地图接口抓取机构的地址和电话信息
708 0
|
Web App开发 Linux iOS开发
用python抓取智联招聘信息并存入excel
用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步作出调整。
1318 0

推荐镜像

更多