发布时间:2026/7/18 3:42:45
影刀RPA 文件夹监控:新文件到达自动触发处理 影刀RPA 文件夹监控新文件到达自动触发处理作者林焱有些场景需要来一个文件处理一个——比如客户通过FTP上传了订单文件、或者某个共享文件夹里有新的PDF需要识别。影刀的定时任务可以周期性检查但间隔太长不够实时、太短又浪费资源。文件夹监控就是解决这个问题的。watchdog库实现文件监控# pip install watchdogimporttimefromwatchdog.observersimportObserverfromwatchdog.eventsimportFileSystemEventHandlerclassFileHandler(FileSystemEventHandler):defon_created(self,event):文件创建时触发ifevent.is_directory:returnfilepathevent.src_path filenameos.path.basename(filepath)print(f发现新文件:{filename})# 处理逻辑iffilename.endswith(.xlsx):process_excel(filepath)eliffilename.endswith(.pdf):process_pdf(filepath)eliffilename.endswith(.csv):process_csv(filepath)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a8594c9084be4e8a8e15b2e4a02f4ced.png#pic_center)defon_modified(self,event):文件修改时触发处理大文件时等写入完成再处理ifevent.is_directory:return# 有些程序写文件时会多次触发modified事件# 这里可以加延时判断文件是否写入完成# 启动监控watch_dirD:/待处理文件/event_handlerFileHandler()observerObserver()observer.schedule(event_handler,watch_dir,recursiveFalse)observer.start()try:whileTrue:time.sleep(1)exceptKeyboardInterrupt:observer.stop()observer.join()大文件防抖处理店群矩阵自动化突破运营极限大文件写入时可能触发多次modified事件。需要防抖——等文件确实不再变化了再处理importosimporttimeclassDebouncedHandler(FileSystemEventHandler):def__init__(self):self.processingset()# 正在处理的文件self.file_sizes{}# 记录文件大小defon_created(self,event):ifevent.is_directory:returnfilepathevent.src_path# 延迟1秒等文件完全写入time.sleep(1)iffilepathinself.processing:returnself.processing.add(filepath)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/52ab12acab9e4e078f08ea6da7c7fbfd.png#pic_center)try:# 确认文件大小不再变化防抖stableFalsefor_inrange(5):# 最多等5秒sizeos.path.getsize(filepath)iffilepathinself.file_sizesandsizeself.file_sizes[filepath]:stableTruebreakself.file_sizes[filepath]size time.sleep(1)ifstable:process_file(filepath)# 处理完移到归档目录archive_pathos.path.join(D:/已处理/,os.path.basename(filepath))os.rename(filepath,archive_path)finally:self.processing.discard(filepath)按文件类型分流defprocess_file(filepath):extos.path.splitext(filepath)[1].lower()handlers{.xlsx:handle_excel,.xls:handle_excel,.csv:handle_csv,.pdf:handle_pdf,.png:handle_image,.jpg:handle_image,}handlerhandlers.get(ext)ifhandler:try:handler(filepath)log(f✓ 已处理:{filepath})exceptExceptionase:log(f✗ 处理失败:{filepath}, 错误:{e})move_to_error(filepath)else:log(f⚠️ 不支持的文件类型:{ext})move_to_unknown(filepath)影刀集成方式watchdog是持续运行的适合独立部署。如果只在影刀流程中临时使用可以改用定时轮询importosimporttime WATCH_DIRD:/待处理/PROCESSED_DIRD:/已处理/defpoll_and_process():影刀每30秒调用一次filesos.listdir(WATCH_DIR)forfilenameinfiles:filepathos.path.join(WATCH_DIR,filename)# 跳过正在写入的文件大小还在变化try:size1os.path.getsize(filepath)time.sleep(1)size2os.path.getsize(filepath)ifsize1!size2:continue# 还在写入中except:continueprocess_file(filepath)os.rename(filepath,os.path.join(PROCESSED_DIR,filename))# 影刀定时任务每30秒调一次poll_and_process()踩坑实录坑1watchdog在Windows上的路径Windows路径用反斜杠watchdog内部可能处理不好。统一用正斜杠或os.path.normpath()watch_diros.path.normpath(D:/待处理文件/)temu店群自动化报活动案例坑2某些程序写文件会创建临时文件Word保存文件时先写一个~$文件名.docx的临时文件再重命名。你的监控要忽略~$开头的临时文件ifos.path.basename(filepath).startswith(~$):return# 忽略临时文件![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e6df020dcc994d60a9e3722d75bfc79c.png#pic_center)坑3observer线程和影刀主流程冲突如果把watchdog启动在影刀的Python代码块里observer.start()后代码就卡住了。解决办法在单独的Python脚本中运行影刀通过文件/数据库与之通信。坑4文件权限刚创建的文件可能被其他程序锁定比如Excel正在打开此时重命名或删除会失败。加try/except处理文件占用try:os.rename(filepath,archive_path)exceptPermissionError:print(f文件被占用稍后重试:{filepath})写在最后文件夹监控让影刀从定时拉取变成事件驱动——不用每分钟查询一次文件一来就处理。用轮询方案简单稳定适合影刀内置集成用watchdog方案适合高实时性独立运行场景。

相关新闻

2026/7/18 3:42:45

UE Niagara性能分析实战:从工具使用到移动端特效优化全解析

1. 项目概述:为什么Niagara性能分析是UE开发者的必修课在虚幻引擎(UE)的视觉特效开发中,Niagara系统以其强大的粒子模拟能力和灵活的模块化设计,已经成为制作复杂视觉效果的绝对主力。无论是电影级的爆炸、烟雾&#x…

2026/7/18 3:42:45

升压型DC/DC转换器PCB布局设计与噪声优化

1. 升压型DC/DC转换器PCB布局的核心挑战升压型DC/DC转换器的PCB布局直接影响电源系统的效率、稳定性和EMI性能。与降压型转换器不同,升压拓扑中存在着更高的di/dt和dv/dt变化率,这会导致更显著的开关噪声和电磁干扰问题。在实际项目中,我曾遇…

2026/7/18 3:42:45

Pandas与Dask协同实践:单机与分布式计算的边界延展

1. 为什么今天还在聊 Pandas 和 Dask?——一个老手的真实困惑与清醒选择你是不是也经历过这样的深夜:Jupyter Notebook 里跑着一个 8GB 的 CSV 文件,pd.read_csv()卡了三分钟没反应,内存使用率飙到 97%,风扇声像直升机…

2026/7/18 4:47:48

汽车整车纵向动力学建模与 MATLAB 仿真实现

前言整车正向研发中,纵向动力学模型是动力匹配、加速性能仿真、能耗分析、工况续航标定的基础模型。相比于复杂的多自由度整车模型,纵向模型简洁、通用性极强,是车企仿真工程师入门与日常迭代的核心工具。本文将从核心力学公式推导出发&#…

2026/7/18 4:47:48

GPU架构设计与并行计算优化实战解析

1. 从芯片架构理解GPU的核心设计哲学当第一次拆开显卡散热器看到GPU芯片时,我意识到这个指甲盖大小的硅片上蕴含着与CPU完全不同的设计哲学。以NVIDIA Turing架构为例,其SM(Streaming Multiprocessor)单元中80%的面积被CUDA核心占…

2026/7/18 4:47:48

模板驱动型文档自动化:让业务人员零代码生成合规PDF

1. 项目概述:当文档生产变成“填空题”,而不是“写作文”你有没有经历过这种场景:每周一早上,市场部同事准时把一份《月度客户反馈摘要》模板发到群里,要求销售、客服、产品三个部门各自填入数据,再汇总成P…

2026/7/18 4:47:48

芯片设计中的LVS检查:原理、流程与实战技巧

1. 初识Layout versus Schematic(LVS)的本质在芯片设计领域,Layout versus Schematic(LVS)检查就像电路世界的"照妖镜"。想象一下,你精心绘制了电路原理图(Schematic)&…

2026/7/18 4:42:48

部署Qwen2-VL-2B进行图片OCR识别及VLM推理

1、配置相关环境首先需要建立一个conda虚拟环境,我这里新建了一个名字为qwen2vl_cpu_env的虚拟环境。python -m venv qwen2vl_cpu_env之后激活虚拟环境,激活后,命令行前缀会显示qwen2vl_cpu_env。qwen2vl_cpu_env\Scripts\activate我使用CPU进…

2026/7/17 5:59:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/17 1:21:45

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/17 7:39:19

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/18 0:00:24

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/17 14:59:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…