影刀RPA新手教程_CSV文件处理完全指南从读取写入到多文件合并 影刀RPA新手教程CSV文件处理完全指南——从读取写入到多文件合并很多人只用 Excel但实际工程场景里 CSV 可能更适合。CSV 的优点纯文本、兼容性好、不需要 Excel 库、跨平台、被 Git 管理时不产生二进制冲突。这篇文章把影刀内置指令 Python 两种方式都讲清楚你按场景选择。一、CSV vs Excel什么时候用 CSV场景推荐 CSV推荐 Excel纯数据存储商品ID、价格、日期✅需要格式颜色、合并单元格、公式✅大文件10万行✅读写更快与Python/Pandas交互✅天然支持✅需要openpyxl版本管理Git✅可diff❌二进制跨平台传输✅无编码问题⚠️格式兼容性实际项目里我一般这样分配中间数据存CSV快最终报表输出Excel好看。二、影刀内置指令读写 CSV影刀没有直接的CSV指令但可以用文件读写配合 Python。拼多多店群自动化上架方案读取 CSV# Python代码指令读取CSVimportcsv csv_pathrD:\数据\商品清单.csv数据列表[]withopen(csv_path,r,encodingutf-8)asf:readercsv.reader(f)标题行next(reader)# 第一行是标题forrowinreader:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8e7830d9bb894ccb94d0f59a0fa35860.png#pic_center)数据列表.append({商品ID:row[0],商品名:row[1],价格:row[2],库存:row[3]})# 数据列表现在可以在影刀循环里使用写入 CSV# Python代码指令写入CSVimportcsv 数据[[商品ID,名称,价格],# 标题行[001,连衣裙,128],[002,T恤,89],]withopen(rD:\数据\output.csv,w,encodingutf-8-sig,newline)asf:writercsv.writer(f)writer.writerows(数据)注意编码用utf-8-sig。用utf-8的话Excel 打开中文会乱码。utf-8-sig会在文件头写 BOMExcel 才能正确识别。三、Pandas 读写 CSV推荐实际上我很少用原生 csv 库。Pandas 三行搞定的事csv 库要写十几行。importpandasaspd# 读取dfpd.read_csv(rD:\数据\商品清单.csv,encodingutf-8)# 筛选热销商品df[df[销量]1000]# 排序热销商品热销商品.sort_values(销量,ascendingFalse)# 写回热销商品.to_csv(rD:\数据\热销商品.csv,encodingutf-8-sig,indexFalse)Pandas 的优势筛选/排序/分组/合并都在 DataFrame 里操作不需要自己写循环。四、批量合并多个 CSV采集流程分多次跑每次生成一个 CSV。需要把多个 CSV 合并成一个。importpandasaspdimportos 文件夹rD:\数据\每日采集所有文件[fforfinos.listdir(文件夹)iff.endswith(.csv)]数据框列表[]for文件名in所有文件:路径os.path.join(文件夹,文件名)dfpd.read_csv(路径,encodingutf-8)# 添加来源标记df[数据来源]文件名 数据框列表.append(df)# 合并所有合并结果pd.concat(数据框列表,ignore_indexTrue)# 去重按商品ID去重保留第一次出现合并结果合并结果.drop_duplicates(subset[商品ID],keepfirst)# 按日期排序合并结果合并结果.sort_values(采集日期)# 保存合并结果.to_csv(rD:\数据\汇总数据.csv,encodingutf-8-sig,indexFalse)print(f合并完成{len(所有文件)}个文件 →{len(合并结果)}行数据)五、增量写入追加而非覆盖采集流程频繁运行每次追加到同一个 CSV 末尾。importpandasaspdimportos 目标文件rD:\数据\历史数据.csv新数据df# 本次采集的数据ifos.path.exists(目标文件):# 文件存在追加模式不写标题行![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e21aea04f0f7487fa143ea46f3ac283a.png#pic_center)新数据.to_csv(目标文件,modea,headerFalse,encodingutf-8-sig,indexFalse)else:# 文件不存在创建并写入标题行新数据.to_csv(目标文件,modew,headerTrue,encodingutf-8-sig,indexFalse)这里的关键是modeaappend 模式配合headerFalse避免每次都写标题行。六、超大CSV分块读取TEMU店群如何管理运营如果 CSV 有几十万行一次性读取会爆内存。importpandasaspd# 分块读取每次读10000行chunk_size10000计数器0forchunkinpd.read_csv(rD:\数据\大数据.csv,chunksizechunk_size,encodingutf-8):# chunk 是每个批次的数据计数器len(chunk)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3f95bd51dccc420f98cfd8e0ed088961.png#pic_center)# 对每个批次做处理处理后chunk[chunk[价格]50]# 只保留价格50的# 追加写入第一个批次写标题后续不写if计数器chunk_size:处理后.to_csv(rD:\数据\筛选结果.csv,modew,indexFalse)else:处理后.to_csv(rD:\数据\筛选结果.csv,modea,headerFalse,indexFalse)print(f处理完成共{计数器}行)七、CSV 编码问题速查编码问题是 CSV 最常见的坑。问题原因解决Excel打开中文乱码缺少BOM标识用utf-8-sig编码写入Python读取报编码错文件是GBK编码用encodinggbk读取某列数据有换行符用户输入了回车读取后apply(lambda x: str(x).replace(\n, ))读取时空格被trimCSV格式问题读时指定skipinitialspaceTrue八、影刀变量 → CSV 的完整实战从采集到存储的完整链路# Step 1: 采集影刀画布指令打开网页(...)获取相似元素列表(商品卡片)→ cards# Step 2: 转为列表[字典]数据列表[]forcardincards:数据列表.append({商品ID:获取卡片ID(card),名称:获取卡片名称(card),价格:获取卡片价格(card)})# Step 3: 写入CSVPython代码指令importpandasaspd# 数据列表 是影刀变量在Python里直接引用dfpd.DataFrame(数据列表)df.to_csv(rD:\采集结果.csv,encodingutf-8-sig,indexFalse)这个链路比先写Excel再导出直接得多。CSV 不需要考虑 Excel 文件被占用、多 Sheet 等问题。内容标签#影刀RPA #CSV处理 #Pandas #数据存储 #文件合并作者林焱本文为《影刀RPA学习手册》系列文章之一内容源于实操经验的整理与分享。