影刀RPA新手教程:CSV文件处理详解——编码、分隔符与大文件读取 影刀RPA新手教程CSV文件处理详解——编码、分隔符与大文件读取刚用影刀RPA做自动化的第一周我就被CSV文件狠狠上了一课从淘宝后台导出的CSV用影刀读出来全是乱码换了个编码又变成一行挤成一格。CSV看着比Excel简单实际是新手最容易栽跟头的格式——编码、分隔符、大文件三个坑够你排查一整天。这篇影刀RPA新手教程把CSV处理的所有关键点一次讲清CSV到底是什么、读取和写入指令的每个参数怎么填、乱码怎么定位、大文件为什么内存报错。你跟着做一遍以后遇到任何后台导出的CSV都能处理。先建立认知CSV本质上就是用逗号分隔的纯文本文件它没有Excel的单元格格式、公式、多Sheet页这些概念。这决定了两件事——它天生适合做数据中转也天生没有格式可保护所有问题都出在编码和分隔符上。认识影刀RPA与界面速览影刀RPA的安装三步官网下载→双击安装→手机号注册登录。社区版每天30分钟时长够新手练习要跑生产流程再考虑创业版。主界面记住三个区域就够左侧指令面板搜索指令名、中间流程画布拖指令排顺序、右侧详情面板配置选中指令的参数。所有CSV相关的指令在左侧搜索框输入CSV就能看到核心就两条读取CSV数据、数据写入CSV。读取CSV数据指令每个参数都值得抠【读取CSV数据】指令的官方说明是从csv文件中读取数据类型为二维列表。它只有四个参数但每个都有讲究参数填法踩坑点CSV文件路径绝对路径从盘符开始相对路径在定时任务里会找不到文件文件编码ANSI/UTF-8/带有BOM的UTF-8选错就是乱码下节细讲首行是列头勾选后第一行作为表头不勾则表头混进数据保存行数据至变量名类型是二维列表不是字符串实操流程示范——读取一个订单CSV并打印拖入【读取CSV数据】指令CSV文件路径填D:\数据\订单导出.csv。文件编码先选UTF-8跑一次看打印结果是否乱码编码定位方法见下一节。首行是列头勾上第一行就会作为表头处理。保存行数据至变量csv_data后面拖一条【打印日志】把csv_data打出来检查。我强烈建议每次读CSV后都跟一条打印日志。二维列表打印出来第一眼就能看出编码对不对、列数对不对、表头有没有混进数据三十秒完成自检比后面写一半才发现问题返工快得多。编码乱码排查三步定位法CSV乱码是影刀RPA新手提问频率最高的问题没有之一。排查逻辑很简单乱码说明编码猜错了把三种编码挨个试乱码消失的那个就是正确编码。经验规律先给你国内Windows平台软件导出的CSV大多是ANSI在简体中文系统上就是GBK网页后台、程序生成的一般是UTF-8带BOM的UTF-8常见于某些工具导出时自带签名。淘宝、拼多多后台导出的CSV我实测多数是ANSI或GBK系。还有一个更隐蔽的坑官方文档里有个经典案例——CSV数据导入SQL Server数据库时报语法错误根因是用了GB2312编码遇到生僻字就报错。解决办法是改用GBK编码因为GBK是对GB2312的扩充多收录了不少生僻字。你的用户名、收货地址里只要有生僻字GB2312就会爆雷直接上GBK更稳。如果你在Python节点里处理CSV编码写法对应关系是ANSI对应gbkUTF-8对应utf-8带BOM的UTF-8对应utf-8-sig。写入CSV与分隔符陷阱【数据写入CSV】指令参数CSV文件路径、文件编码同样是ANSI/UTF-8/带BOM的UTF-8三种、写入方式追加写入/覆盖写入、行数据一维列表或二维列表。写入方式的选择直接影响数据安全追加写在文件末尾覆盖会清掉原文件全部内容。定时任务做每日累积表用追加每次生成全量新表用覆盖。我第一版流程就因为选了覆盖把积累了两个月的客户明细表干没了——从那天起我的所有覆盖写入前面都强制加一条文件备份指令。分隔符的问题主要出在数据里本身带逗号。CSV用逗号分隔如果你的某个字段内容里有逗号比如手机壳,透明正规工具会给这个字段加英文双引号包裹。但如果你自己在Python里手动拼字符串生成CSV行不做引号处理这一个字段就会被拆成两列后面所有列全部错位。防御性做法是别手动拼CSV永远用列表交给指令处理# 用途把采集结果写入CSV带表头# 输入rows 为二维列表如 [[日期,销售额],[10-27,3520]]# 输出CSV文件中新增两行header[日期,销售额,订单数]data[[10-27,3520,128],[10-28,4100,156]]# 二维列表整体交给【数据写入CSV】指令写入方式选覆盖写入# 文件编码选UTF-8避免用记事本打开时中文乱码数据写入CSV(路径D:\\数据\\日报.csv,编码UTF-8,写入方式覆盖写入,行数据[header]data)大文件读取内存不足的真相CSV文件超过几十万行后很多流程会突然报内存不足。官方文档在Excel运行时内存不足相关问题里说明得很直白通过影刀去操作较大的表格文件进行读取、写入操作时容易引发内存不足典型现象包括拷贝粘贴较大Sheet页内容、循环表格内容并打印日志、读写操作类指令报错。根因就是数据量太大一次性把整个文件读进内存装不下。官方给的两个解决方案方法一安装影刀64位版本64位进程可用内存大得多方法二使用pandas处理数据量较大的表格文件。pandas的思路是分块读、边读边处理、不保存全量# 用途分块读取超大CSV只保留销售额大于1000的行# 输入order.csv几十万行输出filtered.csvimportpandasaspd chunks[]# 存放每批筛选结果# chunksize50000 表示每次只读5万行进内存避免一次性撑爆内存forchunkinpd.read_csv(rD:\数据\order.csv,encodinggbk,chunksize50000):chunks.append(chunk[chunk[销售额]1000])resultpd.concat(chunks)# 拼接筛选结果result.to_csv(rD:\数据\filtered.csv,indexFalse,encodingutf-8-sig)# utf-8-sig保证Excel打开不乱码这段代码在Python节点里跑比指令一次性读取稳得多。还有个习惯要改循环处理大文件时不要在循环体内放打印日志几十万次打印既慢又吃内存官方文档也点名了这个现象日志改成循环外输出一次汇总即可。变量、流程控制与CSV数据清洗CSV读出来是二维列表后续所有操作都围绕它展开。变量层面的关键认知csv_data[0]是第一行一维列表csv_data[0][1]是第一行第二列单个值下标从0开始。流程控制三件套在这里的用法ForEach列表循环遍历csv_data逐行处理循环变量就是每一行的一维列表。If条件判断过滤脏数据比如判断某列不为空、金额是否是数字。Try-Catch包住整段处理Catch里输出日志防止单行脏数据炸掉整个流程。数据清洗常用操作文本去空格用字符串的strip思路影刀有对应的文本处理指令金额字段统一去掉¥再转数字日期字段统一格式。JSON数据处理在CSV场景偶尔出现——某些平台导出的CSV里有一列整个是JSON字符串需要二次解析。网页采集导出CSV的一条龙CSV的典型来源是网页后台导出按钮。采集链路涉及网页自动化的核心动作打开网页→处理登录态→点击导出→等文件下载→读CSV→清洗→写入Excel或数据库。元素定位四合一在导出按钮上的应用优先用【判断元素是否存在】确认导出按钮已加载存在才点击按钮在弹窗里时注意iframe处理——如果元素捕获时需要先进入iframe流程里就要先有切入iframe的指令否则定位必失败翻页采集时用下一页按钮的disabled属性判断是否到了最后一页这是官方教程里不确定总页数时的标准翻页写法。XPath和CSS选择器的选型原则保持一致CSS选择器写起来短适合class唯一的场景XPath功能全模糊匹配和文本定位只有它能做。做后台导出按钮这种动态弹层我习惯XPath的contains模糊匹配比死板的绝对路径抗改版。平台实战提示拼多多后台的批量导出是点击后异步生成文件再下载要配合等待和文件判断淘宝直通车报表导出同理小红书数据后台的导出文件名带时间戳读取时要用通配或最新文件判断来定位不能写死文件名。数据库、联动与工程化收尾CSV的终点往往是数据库。影刀RPA的数据库指令链路是连接数据库→可选执行SQL→批量插入到数据库→关闭数据库。批量插入比逐行插入快一个数量级几十万行的CSV必须用批量插入。编码坑前面说过导入时编码指定为GBK可以解决GB2312生僻字导致的报错。系统联动的标准收尾处理完的CSV或汇总Excel通过邮件指令发送或推送到飞书群定时任务在计划任务里配置每天凌晨自动跑导出和清洗。工程化规范三条CSV处理逻辑封装成独立子流程输入参数是文件路径和编码输出是清洗后的二维列表任何流程都能复用变量命名带上类型前缀比如list_orders、str_path调试时看变量面板一目了然报错排查先看日志定位到指令再单步执行看变量值九成问题五分钟内能解决。鼠标键盘和图像自动化在CSV场景用得少但下载文件时另存为弹窗这类系统级窗口网页指令管不了得用桌面端的窗口操作和键盘模拟来处理——这是新手容易困惑的分界线网页内的用网页指令网页外的系统弹窗用桌面自动化。CSV处理易错速查现象根因修复读出来中文乱码文件编码选错三种编码挨个试导入数据库报错GB2312缺生僻字改用GBK编码列全部错位字段内含逗号未包裹用指令写入不手动拼大文件内存不足一次性读入内存64位版本或pandas分块覆盖写入丢历史数据写入方式选错覆盖前先备份文件学习资源与延伸阅读官方文档数据处理补充专题里读取CSV数据、数据写入CSV两条指令的参数说明配了完整示例流程建议照着跑一遍再改自己的文件。我把自己整理的CSV清洗模板和分块读取的完整源码放在代码仓库 home.linyan.cloud可以直接参考改造编码问题照着速查表对号入座即可。#影刀RPA #RPA自动化 #CSV #数据处理 #数据清洗作者林焱