2026/10/8 13:21:29

影刀RPA新手教程:文件与文件夹操作实战——批量重命名读写与路径处理

影刀RPA新手教程:文件与文件夹操作实战——批量重命名读写与路径处理 影刀RPA新手教程文件与文件夹操作实战——批量重命名读写与路径处理有次帮客户采集商品图片一天下来2000多张全堆在一个文件夹里文件名是一串随机字符——IMG_20241123_145632.jpg这种。客户说要按日期商品名分类当时我就蒙了。手动整理了一整天第二天才想到用影刀自动化。从那以后文件操作成了我最常用的技能之一。这篇文章用批量整理采集图片做主线串起文件读写、文件夹操作、批量重命名、路径处理所有知识点。1. 认识影刀/安装影刀安装后建议先把文件操作相关的指令浏览一遍都在指令库的文件分类下。常用的就那几个文件读写、文件重命名、文件删除、文件夹创建、获取文件路径信息。新手注意影刀用的是自己的文件操作指令不走系统cmd命令。虽然也能嵌入Python做文件操作但简单场景直接用影刀指令更直观。2. 元素定位四合一文件操作开始前数据从哪来从网页来。所以要先学会定位。F12→Elements面板→CtrlF输入XPath测试。六个常用XPath//div[classproduct-img]/img——图片元素定位//span[contains(text(),价格)]/following-sibling::span——价格元素同级后面那个span//img[contains(src,.jpg)]——所有jpg图片//div[idgallery]//img——图库下所有图片//*[contains(class,title) and text()]——有文本的标题元素//a[contains(href,item)][1]——第一个商品链接CSS选择器取图片img[src$.jpg]以.jpg结尾的imgdiv.main-img img:first-child第一张主图。正则表达式在文件名处理里特别有用。提取日期(\d{8})八位数字匹配年月日。提取商品IDid(\d)。提取图片序号_\d\.jpg。3. 变量与数据类型文件操作核心变量类型字符串——文件路径都是字符串。拼接路径用或os.path.join()后者自动处理分隔符。列表——批量操作时先把所有文件路径收集到一个列表再循环处理。采集图片URL列表→循环下载→下载完收集本地路径列表→批量重命名。这个流程我跑了上千次。字典——文件信息结构化存储{原文件名: IMG_001.jpg, 新文件名: 商品A_主图_001.jpg, 大小: 123456, 日期: 20241123}。JSON——复杂文件配置存JSON。采集任务的配置文件{保存路径: D:/商品图片/, 图片前缀: 商品名_, 按日期分文件夹: true}。Python块里json.loads()读取→修改→json.dumps()保存。4. 流程控制ForEach列表循环——遍历已下载的文件列表逐个处理。这个最常用。For次数循环——已知文件数量时用。比如已经拿到了100个文件路径的列表ForEach就够了。While条件循环——监听文件夹变化。有新文件进来就处理没有就等待。If条件判断——每个文件操作前判断文件/文件夹是否存在防止报错。Try-Catch——文件操作最容易出错文件被占用、路径不存在、权限不够。每个文件操作都包Try-Catch。5. 网页自动化——图片批量下载采集商品图片的完整流程打开商品详情页等待图片加载等待相似元素出现获取所有图片元素的src属性循环下载每张图片等图片加载有个坑有的网站图片是懒加载的只有滚动到可见区域才加载。解决先scrollTo(0, scrollHeight)滚动到底部等2秒再抓img的src。图片URL可能是相对路径//img.alicdn.com/xxx.jpg。下载前要拼接完整的URL前缀。这个我排查了一下午——图片下载指令报了404后来F12发现src是双斜杠开头的需要拼https:。翻页采集多商品时每翻一页把当页图片都下了按商品分文件夹。iframe处理——有的商品图片在iframe里展示天猫国际、跨境店要先切换iframe再定位图片元素。6. 数据处理文件读写三种格式TXT——最简单直接读取文件选文本格式。采集日志、错误记录用TXT。注意编码选UTF-8不然中文乱码。写入文件时可以选覆盖写入或追加写入追加写入还能选新行追加。CSV——轻量表格格式。影刀有专门的CSV读写指令也可以用Python的csv库。批量写入时先攒数据到列表一次性写入比一行写一次快十几倍。JSON——结构化数据存JSON。影刀里用Python块的json库import jsonjson.loads(json字符串)转对象json.dumps(对象, ensure_asciiFalse)保证中文不乱码。文本清洗——网页采集回来的文本大概率带空格换行符strip()去两端空格replace(\n, )去换行replace(¥, )去货币符号。7. 鼠标键盘图像自动化批量整理文件时有些操作需要模拟鼠标键盘模拟文件拖拽——某些软件必须通过拖拽方式导入文件。影刀用拖拽指令指定起始坐标和终点坐标模拟鼠标左键按下→移动→释放。图像识别辅助——文件另存为对话框里保存按钮可能不是标准Windows控件。用图像识别截图保存按钮→wait_appear→click。8. 进阶技能Python做文件操作比影刀原生指令更灵活。常用库os库——路径处理、文件遍历、文件夹操作。os.listdir(路径)列出所有文件os.path.exists(路径)判断是否存在os.makedirs(路径)递归创建文件夹。shutil库——文件复制移动。shutil.copy(源路径, 目标路径)复制文件shutil.move(源路径, 目标路径)移动文件shutil.rmtree(路径)删除文件夹。我的Python文件操作模板importosimportshutil# 获取图片文件夹source_dirpackage.variables[图片文件夹]# 创建按日期分类的文件夹date_folderos.path.join(source_dir,20241123)ifnotos.path.exists(date_folder):os.makedirs(date_folder)# 批量移动文件forfileinos.listdir(source_dir):iffile.endswith(.jpg):shutil.move(os.path.join(source_dir,file),os.path.join(date_folder,file))Python块引用全局变量必须是package.variables[变量名]格式我一开始直接写变量名报了半天错。9. 平台实战淘宝商品图片采集 小红书笔记图片采集淘宝图片整理淘宝商品主图的URL规律https://img.alicdn.com/xxx.jpg或//img.alicdn.com/xxx.jpg。相对路径需要拼接https:。批量下载后按商品ID分文件夹。流程采集列表页获取商品ID和标题进入每个商品详情页获取所有图片URL按商品ID_序号.jpg格式下载到D:/商品图片/商品ID/文件夹记录下载结果到CSV小红书笔记图片整理小红书笔记的图片没有清晰的文件名下载下来全是随机字符串。需要按照笔记标题发布时间重命名。流程采集笔记标题和发布时间循环下载该笔记的图片到临时文件夹批量重命名笔记标题_发布时间_序号.jpg按日期移动到归档文件夹文件重命名的核心用获取文件路径信息指令先拿到原文件的基本文件名和扩展名然后拼接新文件名最后执行文件重命名。10. 系统联动整理完文件后自动通知飞书消息通知——整理完成发送消息今日共整理商品XX个图片XX张已归档至XX文件夹。用飞书机器人webhook。整理失败也发一条异常消息。邮件发送——整理结果表格CSV作为附件发送给客户。QQ邮箱SMTP配置smtp.qq.com端口587需要开启POP3/SMTP服务获取授权码。定时任务——设置每天凌晨2点自动整理前一天的图片。影刀客户端自带定时执行功能。11. 工程化与规范文件操作六大原则操作前先判断文件/文件夹是否存在——用if判断不存在就创建或跳过路径用os.path.join拼接——不用字符串硬拼路径\文件名Windows和Mac的分隔符不同文件名不要含特殊字符——冒号、问号、星号、尖括号在Windows文件名里非法批量操作先存列表再执行——不要边读边写容易冲突每个文件操作包Try-Catch——单个文件操作失败不影响整体大文件分批处理——文件数量上万时每500个处理一批释放内存路径处理的坑Windows反斜杠vs正斜杠——影刀指令接收路径时用正斜杠或双反斜杠都行但用了单反斜杠就会出问题因为\n、\t被识别为转义字符。统一用正斜杠最省事。中文路径——中文路径理论上没问题但有些老旧系统接口不支持。尽量用英文路径。路径不存在——用os.path.exists()先判断。创建文件夹用os.makedirs(路径, exist_okTrue)父目录不存在自动创建。获取文件路径信息的指令返回五个字段根目录、父目录、文件名、基本文件名、文件扩展名。基本文件名是不含扩展名的部分扩展名含点号。我常用它来提取基本文件名→拼接新名称→重命名。子流程封装——把文件操作封装成独立子流程主流程调用。比如图片归档子流程输入源文件夹和目标文件夹批量重命名子流程输入文件夹路径和命名规则。命名规范——文件夹名用日期项目名20241123_淘宝采集文件名用商品名序号类型商品A_主图_001.jpg。一看就知道是什么。12. 速查表/常见报错文件读写报错文件不存在原因路径错误或文件已被移动解决操作前先os.path.exists()判断写入文件中文乱码原因编码不对解决编码选UTF-8Python写文件时指定encodingutf-8文件重命名报错文件被占用原因文件正在被其他程序打开解决关闭打开该文件的程序后再操作文件路径报错原因下载/上传文件指令路径输入方式问题解决检查输入的路径是否有效改用模拟人工输入或剪切板输入文件名超长报错原因Windows路径最长260个字符解决缩短文件夹名减少层级用Python的\\?\前缀绕过限制删除文件夹失败原因文件夹非空解决用Python的shutil.rmtree(路径)递归删除批量重命名序号错乱原因循环中用了原序号而非新序号解决用列表收集新路径统一执行重命名路径拼接错误原因多了或少了一个分隔符解决用os.path.join()代替字符串拼接下载文件没有扩展名原因Chrome设置为不询问直接下载、未加扩展名或本机未开启显示扩展名解决Chrome设置→下载内容→开启下载前询问每个文件的保存位置图片下载404原因URL是相对路径解决F12看完整URL拼接缺失的协议和域名整理脚本模板1. 获取源文件夹路径 2. 列出文件夹内所有文件 3. 循环每个文件 判断扩展名→按规则分类→移动到对应文件夹→重命名 4. 输出整理结果影刀文件操作更详细的教程可以去 home.linyan.cloud 看那里有从入门到高级的完整教程。#影刀RPA #RPA教程 #新手入门 #文件操作 #批量重命名 #文件夹整理作者林焱