神器推荐!一个能监控文件变化的Python神器—看门狗

【做一下1】python 监听数据库变化 监听数据库 阅读详情

假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。

比如说应用到我们之前的音乐高潮提取器:若当前文件夹下增加了一个音乐文件,监控器就调用音乐高潮提取器,自动提取该音乐文件的高潮部分。

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

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。

在终端输入以下命令安装我们所需要的依赖模块:

pip install watchdog


看到 Successfully installed xxx 则说明安装成功。

2.基本使用

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

可以看到代码中有几个关键步骤,

1.配置各项信息;

2.生成事件处理器、监控器;

3.注册事件处理器、配置目录、递归执行(即同时监控子文件夹);

4:启动。

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

如果你不带参数地运行该脚本,就是要监控脚本文件所在的文件夹,如果要监控其他文件夹,记得运行时带文件夹的路径参数,如:

python obserber.py /data/home/ckend/

我们来试着运行看看:


可以看到,我在当前文件夹下做的所有操作都被记录下来了。接下来我们就试试怎么自定义一些操作。

3.监控文件变化

要实现这样的功能,我们有几种方法,一个是在原来log的处理器上做一些新增修改,比如多增一个函数调用音乐高潮提取器。第二个是重新继承 FileSystemEventHandler 类,并做相应的修改。这里我们还是要保留log的样式,只是在log的时候顺便提取音乐高潮,因此采用第一个方法。

看看 LoggingEventHandler 源代码中的 on_created ,这就是当文件创建时监控器的操作:


我们仅需要继承这个类并对 on_created 进行修改,就能完成我们想要的功能:

首先声明一个类,继承 LoggingEventHandler ,然后重载 on_created 函数,在这个函数中不仅记录文件事件变化,还要对mp3文件做一次音乐高潮提取。最后别忘了,生成事件处理器时要用我们新的类名。

看看效果,将 小永远.mp3 复制过来:


成功监控文件变化并提取到音乐高潮,生成高潮文件。这样,只要你保持这个Python进程不关闭,它就会一直监控这个文件夹,一旦有音乐文件进入,就会自动提取它的音乐高潮,在linux系统下,可以搭配supervisor使用,非常好用。

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领AI全套资料!
Python监听指定路径下文件夹变化 在日常工作中,许多任务需要我们监控特定目录,以便实时获取新创建的文件夹。对于目录的创建和删除操作,由于Watchdog将它们视为移动操作,因此通过 on_moved 方法进行捕捉,并检查 event.is_directory 属性以区分是文件还是目录。通过 observer.schedule 方法设置要监控的目录路径和事件处理器,并设置 recursive=True 参数以递归地监控目录内的所有子目录。程序将开始监听指定的目录,一旦有新的文件夹被创建,它会在终端中输出相关信息。库来实现文件夹的监听功能。 阅读详情

相关推荐

如何用Python自动监测excel表格的更新并同步到网站呢?

例如,你可能需要处理 Excel 文件中的日期和时间格式,并确保将其正确地转换为 JSON 数据。此脚本将轮询检查 Excel 文件是否有更新,并使用 requests 库从网站的 API 接口更新数据。每次更新成功后,它会将上一次 Excel 文件的最后修改时间更新为当前时间,并在下一次检查时使用此时间进行比较,以检测文件是否已更新。最后,该脚本使用 time.sleep() 函数设置一个间隔时间,以便每隔一段时间就检查一次 Excel 文件是否有更新。# 更新上一次 Excel 文件的最后修改时间。

m0_73291751的博客 1251

[Python系列] 监听文件夹和文件

PyInotify 是一个 Python 库,用于监视文件系统事件,例如文件的创建、删除、移动、重命名等。它基于 inotify 库,提供了一个 Python API,方便开发者使用。PyInotify 支持 cross-platform,可以在 Linux、macOS 和 Windows 等操作系统上使用。它提供了多种方式来监视文件系统事件,例如通过回调函数、生成事件队列、异步监视等。使用 PyInotify,可以方便地实现文件系统监视功能,例如监控某个目录下的文件变化、监控进程的输出等。

u013379032的博客 6201

VH6501总线干扰神器实战:从硬件原理到CAPL脚本的汽车ECU压力测试指南

在汽车电子开发中,总线通信的可靠性至关重要。其核心原理在于,控制器局域网(CAN)总线通过差分信号传输数据,但实际环境中易受电磁干扰、电源噪声等因素影响,导致信号失真或通信中断。为了确保电子控制单元(ECU)的鲁棒性,必须在研发阶段进行系统性的压力测试。故障注入技术应运而生,它允许工程师在受控环境下,主动模拟各种总线异常,从而验证ECU的容错与恢复能力。这一技术的核心价值在于,它能将潜在的道路故障提前在实验室复现并解决,大幅提升整车电气系统的安全性与可靠性。VH6501作为一款精密的可编程总线干扰与网络质量

weixin_34221332的博客 440

一个能监控文件变化的Python神器—看门狗

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

Python实用宝典网 1155

树莓派CM4工业落地实战:GPIO引脚图、接口设计、通信与可靠性

在工业数字化转型中,边缘计算与数据采集需求激增。树莓派凭借四核处理器与完整Linux环境,成为介于PLC与工控机之间的灵活方案。Compute Module 4采用核心板加底板设计,让工程师可自定义GPIO引脚、串口、CAN及DI/DO接口,从而适配多样化的工业现场。硬件选型需重点考虑电源稳定、电平转换与防护隔离,软件层面则通过Modbus RTU、MQTT等协议实现设备互联与数据上云。同时,只读文件系统、看门狗与远程维护机制保障了系统的长期可靠性。理解树莓派GPIO引脚图及CM4扩展接口,是搭建原型到量产

keke1314520的博客 329

从电赛F题到智能小车:OpenMV数字识别在STM32项目里的实战避坑指南

本文详细介绍了OpenMV数字识别技术在STM32项目中的实战应用,特别针对全国电设等电子设计大赛中的常见问题提供解决方案。从OpenMV与STM32的稳定通信协议选择,到复杂环境下的数字识别优化,再到STM32端的智能决策架构设计,全面解析了项目开发中的关键技术和避坑技巧。

weixin_30696427的博客 385

一个能监控文件变化的Python神器——看门狗

假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。比如说应用到我们之前的音乐高潮提取器:若当前文件夹下增加了一个音乐文件,监控器就调用音乐高潮提取器,自动提取该音乐文件的高潮部分。这样的监控器写起来也不难,但是很花时间,有许多情况要考虑。不过幸好我们是写Python的,有许多轮子可以使用,本文介绍的就是一个名为 watchdog 的模块,它能帮助我们实现上述功能。1.准备开始之前,你要确保Python和pip已经成功安装在电脑上噢。如果你用Python的目的是

sixqingfeng的博客 2767

Hermes Agent状态驱动设计原理与CLI命令实战指南

Hermes Agent 是一种面向生产环境的智能自动化代理工具,其核心并非传统CLI的动作执行,而是基于SQLite状态机的状态驱动架构——通过持续比对 desired_state 与 actual_state 实现自愈与一致性保障。这种设计天然适配边缘计算、IoT设备及弱网场景,解决了命令中断、结果不可达等分布式运维痛点。技术价值体现在可验证性、可回滚性与上下文感知能力上,广泛应用于金融风控规则引擎、电商大促调度、固件批量升级等高可靠性场景。本文深入解析其四大命令体系(启动锚定、上下文编织、任务编排、诊

weixin_33851429的博客 505

AI Agent神器:26K星开源项目让桌面软件拥有自主思考能力

AI Agent(智能体)是人工智能领域的关键技术,它通过感知、决策、执行三层架构,赋予程序自主理解目标、规划步骤并调用工具完成任务的能力。其核心原理在于将大语言模型的推理能力与具体软件功能相结合,实现从“被动响应”到“主动操作”的跨越。这一技术具有极高的工程实践价值,能显著提升自动化水平,将传统确定性的流程脚本升级为目标驱动的智能助手。其应用场景广泛,可深度融入日常办公、开发运维、数据分析等工作流,实现如自动处理邮件、生成报告、操作浏览器与办公软件等复杂任务。本文探讨的“AI Agent神器”开源项目,正

weixin_30615767的博客 663

MQX RTOS for Kinetis SDK 1.1.0 实战指南:从架构解析到开发调试

实时操作系统(RTOS)是嵌入式开发中管理多任务、实现确定响应的核心软件层,其原理在于通过任务调度、同步通信等机制,高效管理CPU资源。在资源受限的微控制器(如ARM Cortex-M)上,RTOS的技术价值尤为突出,它能将复杂应用模块化,提升系统可靠性和开发效率。MQX作为一款历史悠久、与NXP芯片深度集成的RTOS,在Kinetis SDK 1.1.0版本中实现了从“独立王国”到“生态融合”的架构转变,其驱动模型统一基于KSDK,并提供了POSIX兼容的I/O包装层,显著降低了学习曲线。针对物联网、工业

weixin_34208283的博客 509

CC3200硬件设计避坑指南:引脚复用、电源模式与典型电路解析

在嵌入式系统设计中,微控制器(MCU)的引脚复用(PinMux)和电源管理是决定系统稳定性和能效的关键技术。引脚复用机制允许有限的物理引脚通过软件配置承载多种外设功能(如UART、I2C、SPI),其原理涉及硬件启动配置与软件寄存器控制的协同。合理规划引脚复用能最大化硬件资源利用率,避免信号冲突,对于连接Wi-Fi模块、传感器等外设的物联网设备至关重要。电源架构设计则直接关联设备的续航与可靠性,需根据输入电源类型(如电池或稳压源)选择高效转换模式。本文以TI CC3200无线MCU为例,深入剖析其复杂的引脚

weixin_33910385的博客 437

多智能体协同操作计算机:架构设计与工程实践指南

在人工智能领域,智能体(Agent)是指能够感知环境、进行决策并执行动作以实现目标的自主实体。其核心原理在于通过与环境交互,基于内部模型或策略选择最优行动。这一技术价值在于将复杂任务自动化,显著提升效率与准确性。在工程实践中,智能体技术正与自动化流程(RPA)深度融合,催生出新一代的自动化解决方案,广泛应用于办公自动化、软件测试、数据抓取与处理等场景。其中,Multi-Agent Computer Use(多智能体计算机使用)代表了该领域的前沿方向,它通过组建分工明确的虚拟AI团队来协同操作计算机软件。这种

weixin_30764883的博客 392

ModuLoop:面向机器人底层控制的模块化代码生成与闭环调试框架

在机器人实时控制开发中,从控制理论建模到嵌入式部署常面临模型-代码-硬件三重失配问题。其核心原理在于离散化实现、异构时钟同步与状态一致性保障的协同设计。该技术显著提升控制算法迭代效率与现场调试可靠性,支撑高动态场景下的确定性响应。典型应用场景包括工业机械臂伺服优化、四足机器人腿控开发及高校机器人控制实验平台构建。本文聚焦ModuLoop框架,深入解析其控制域特定语言(Control DSL)驱动的模块化代码生成机制与基于硬件时间戳锚定的闭环调试框架(CLDF),揭示如何通过语义化建模与原子化模块封装,实现控

weixin_34293059的博客 609

汽车电子开发实战:AURIX™ TC3xx MCU与SBC、CAN FD/LIN总线开发详解

在汽车电子领域,微控制器(MCU)是电子控制单元(ECU)的核心大脑,负责执行复杂的逻辑与控制算法。其工作原理涉及硬件架构、外设驱动与实时操作系统协同,确保对车辆各子系统(如车身、动力、底盘)的精准管理。MCU的技术价值在于实现汽车电子系统的功能安全、高可靠性与高性能计算,是满足ISO 26262等严苛标准的基础。其典型应用场景涵盖车身控制模块(BCM)、网关、新能源三电系统以及高级驾驶辅助系统(ADAS)。本文聚焦于**英飞凌AURIX™ TC3xx系列MCU**这一行业主流平台,深入探讨其与**系统基础

weixin_30321709的博客 426

三轴云台稳定控制算法优化实战:从PID到模糊自适应

本文深入探讨了三轴云台稳定控制算法的优化实践,从经典PID控制到模糊自适应算法的进阶应用。通过实战案例和代码示例,详细解析了PID调参技巧、模糊控制实现及多传感器数据融合方法,帮助工程师在复杂环境下提升云台抗干扰能力和响应速度,特别适用于无人机航拍等场景。

green的博客 911

Zynq 【SDK裸机开发之PS】——DDR的内存分配使用详解

Zynq如果跑操作系统的话,内存管理的工作都会交给系统来操作,但是如果是裸机的话,则需要自己对DDR3的内存进行管理。

shizhibuyi1234的博客 7378

嵌入式Linux+C语言进阶:从系统编程到驱动开发的硬核实战指南

在嵌入式系统开发领域,Linux操作系统与C语言构成了核心的技术基石。其原理在于,C语言凭借其直接操作硬件和内存的能力,为系统级编程提供了高效且可控的底层接口;而Linux内核则提供了强大的进程管理、内存管理、文件系统和设备驱动框架。这一组合的技术价值在于能够构建出稳定、高效且资源可控的嵌入式产品,广泛应用于智能硬件、工业控制、汽车电子等对实时性和可靠性要求极高的场景。要掌握这项硬核技能,开发者必须跨越从应用层到底层驱动的鸿沟,深入理解交叉编译、内核移植、驱动开发及多线程编程等关键技术。本指南聚焦于嵌入式L

weixin_33847182的博客 318

初识数据结构之入门必懂——线性表(顺序表)

本文将介绍数据结构中的线性表与线性表中最简单的结构——顺序表

m0_64705485的博客 905

Raspberry Pi Pico实战指南:从微控制器到物联网应用开发

微控制器作为嵌入式系统的核心,通过直接控制硬件执行特定任务,在物联网和智能设备领域发挥着关键作用。其工作原理基于处理器、内存和输入输出接口的协同,开发者通过编写固件实现底层硬件操作。在技术价值上,微控制器以低成本、低功耗和高可靠性,成为连接物理世界与数字世界的桥梁。常见的应用场景包括传感器数据采集、执行器控制和物联网节点部署。本文聚焦Raspberry Pi Pico,这是一款基于RP2040芯片的微控制器开发板,以其双核架构和独特的可编程IO(PIO)特性,在物联网原型开发中表现出色。通过MicroPyt

296

51单片机定时器的原理、应用与编程实现

本文系统介绍了51单片机定时器的基本原理与应用。首先阐述了定时器的工作原理,包括定时模式和计数模式的区别。然后详细讲解了定时器的四种工作模式(方式0-方式3)及其适用场景,并分析了相关寄存器(TMOD、TCON、THx/TLx)的功能设置。文章还给出了定时器编程的具体步骤,包括初始化、计数初值计算和示例代码。最后通过LED闪烁、PWM波形产生、脉冲计数等实际应用案例,展示了定时器的多样化应用。掌握这些知识对嵌入式系统开发具有重要意义。

2501_91227323的博客 1523

【机器学习】推理时计算优化——思维链(Chain-of-Thought)与慢思考范式 第一章:基础理论与认知框架 第二章:计算优化技术与前沿方法

过程监督在数学推理中展现出显著优势,因其能够定位错误发生的具体步骤,而非仅在最终答案处提供稀疏反馈。然而,高质量过程标注的获取成本高昂,这催生了基于自动验证器的近似方法。

VectorShift的博客 72

OpenMV嵌入式视觉实战:电设与智能车竞赛的视觉方案设计与优化

嵌入式视觉系统是智能设备感知环境的核心技术,它通过在资源受限的硬件上实现图像采集、处理与理解,为自动化系统提供决策依据。其原理涉及图像传感器数据采集、实时图像处理算法以及高效的硬件协同设计。在电子设计竞赛和智能车竞赛等场景中,嵌入式视觉的价值在于能够以较低的成本和功耗,实现快速的目标识别、路径规划等关键功能。OpenMV作为一款集成了图像传感器、处理器和MicroPython环境的嵌入式视觉平台,极大地简化了开发流程,使开发者能够专注于上层应用逻辑。通过UART通信协议与主控稳定交互,并结合ROI设定、颜色

weixin_34212762的博客 515

【AI智能体】Codex AI 辅助编程高级技能实战操作详解

Codex AI 辅助编程高级技能实战操作详解

congge 6758

Opus 4.7 不是万能开关:Claude Code 中的精准使用指南

大语言模型在编程场景中的应用正从‘能用’迈向‘敢用’与‘精用’阶段。Opus 4.7 作为当前Claude Code中能力最强的模型版本,其核心价值并非通用性能提升,而是面向高置信度、长上下文、多步骤自主决策任务的深度推理与自我验证能力。它依托指令契约主义、状态机式长程推理和双轨制验证三大底层机制,在金融级代码审计、跨系统架构重构等高后果场景中显著降低风险;但在轻量补全、快速原型等低风险任务中反而因响应延迟与输出冗余拉低效率。理解其能力边界与适用条件,是开发者构建AI增强型开发工作流的关键前提。

weixin_33713707的博客 366

FPGA纯Verilog实现I²C主机控制器与EEPROM读写

I²C是一种广泛应用的同步串行总线协议,用于连接微控制器与EEPROM、传感器等低速外设。其核心原理包括开漏结构、主从通信机制、START/STOP时序及ACK/NACK应答流程。技术价值在于硬件资源占用少、布线简洁、支持多从机扩展,特别适合FPGA嵌入式系统中轻量级外设控制。典型应用场景涵盖工业数据存储、配置参数持久化及实时传感器接口。本文基于Xilinx Spartan-6 FPGA,采用纯Verilog HDL实现参数化I²C主机控制器与AT24C02 EEPROM读写验证,深入解析状态机设计、SDA

weixin_33557333的博客 119

FPGA 学习笔记:解决FPGA程序固化重新上电程序不运行的问题

FPGA 学习笔记:解决FPGA程序固化重新上电程序不运行的问题

坚韧与专注 1万+
上一篇: 只要一行代码,批量将Word转换为PDF!
下一篇: 10000元的AI大礼包!我成功薅到了百度的羊毛...
菜鸟学Python
博客等级 码龄9年 8061粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值