0

0

Watchdog库是什么 如何用Python监控文件夹变化并上传XML

幻夢星雲

幻夢星雲

发布时间:2026-01-31 11:21:08

|

353人浏览过

|

来源于php中文网

原创

Watchdog库可监控目录变更并自动上传XML文件:安装watchdog及平台依赖,编写继承FileSystemEventHandler的处理器,在on_created中校验.xml文件、延时等待写入完成、检查文件大小后用requests上传。

watchdog库是什么 如何用python监控文件夹变化并上传xml

如果您希望在文件系统中检测到特定目录的变更后自动处理并上传XML文件,Watchdog库是一个专为监控文件系统事件设计的Python工具。以下是使用Watchdog实现该目标的具体方法:

一、安装Watchdog库

Watchdog依赖于操作系统底层的文件监控机制(如Linux的inotify、macOS的FSEvents、Windows的ReadDirectoryChangesW),需先通过pip安装核心包及可选的额外依赖以支持不同平台的高效事件捕获。

1、打开终端或命令提示符。

2、执行安装命令:pip install watchdog

立即学习Python免费学习笔记(深入)”;

3、若在Linux系统上需要更高性能,可额外安装:pip install inotify

二、编写基础监控脚本

创建一个Python脚本,利用Observer监听指定路径,使用FileSystemEventHandler子类响应文件创建、修改等事件,并在检测到XML文件生成时触发上传逻辑。

1、导入必要模块:from watchdog.observers import Observerfrom watchdog.events import FileSystemEventHandlerimport os, time

2、定义事件处理器类,继承FileSystemEventHandler,在on_created方法中判断文件扩展名是否为.xml。

3、在该方法内添加条件判断:if file_path.lower().endswith('.xml'),满足则执行后续上传操作。

三、集成HTTP上传功能

当XML文件被创建后,需通过HTTP协议将其发送至指定服务器端点。可选用requests库完成POST请求,确保服务端能接收multipart/form-data或raw XML格式数据。

1、在脚本开头添加:import requests

QIMI奇觅
QIMI奇觅

美图推出的游戏行业广告AI制作与投放一体化平台

下载

2、在事件处理器中构造上传请求:with open(file_path, 'rb') as f: response = requests.post('https://your-api.com/upload', files={'file': f})

3、检查响应状态码if response.status_code == 200,表示上传成功;否则记录错误日志。

四、使用线程安全方式避免重复上传

文件系统事件可能因编辑器保存行为被多次触发(如先创建空文件再写入内容),直接在on_created中上传可能导致失败或重复提交,需引入延迟与存在性校验机制。

1、在事件处理器中调用time.sleep(0.5),等待文件写入完成。

2、再次检查文件是否存在且大小大于0:if os.path.exists(file_path) and os.path.getsize(file_path) > 0

3、仅在此条件下执行上传逻辑,防止空文件或未就绪文件被提交。

五、配置监控路径与启动观察器

Observer实例需绑定事件处理器并指定监控路径,启动后将持续运行,因此主程序需保持活动状态,通常采用阻塞式等待或后台线程方式维持生命周期。

1、初始化观察器:observer = Observer()

2、将自定义处理器与路径关联:observer.schedule(event_handler, path='/path/to/watch', recursive=False)

3、启动观察器:observer.start(),随后使用try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop()维持运行并支持中断退出。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

339

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

416

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

761

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

349

2025.07.23

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

780

2023.08.22

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

97

2023.09.25

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

97

2023.09.25

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1903

2024.04.01

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

8

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.2万人学习

Git 教程
Git 教程

共21课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号