影刀RPA Excel与CSV互转的编码陷阱:中文不乱码的正确转换 影刀RPA Excel与CSV互转的编码陷阱中文不乱码的正确转换CSV看起来简单——逗号分隔的文本文件嘛。但中文字符一上去问题就来了读出来全是乱码、逗号在文本里被截断、数字前面的零消失了。这篇文章把Excel和CSV互转的所有坑讲透给一个再也不乱码的标准模板。CSV为什么容易出问题CSV本质上就是一个纯文本文件。它不存储任何编码信息、不存储数据类型、不存储格式。当你用文本编辑器打开一个CSV文件时订单号,客户名,金额,日期 ORD001,张三贸易,3580.50,2026-07-01 ORD002,李四科技,12000.00,2026-07-01看起来很简单。但问题都藏在看起来里编码不明确这个文件是UTF-8还是GBK文本编辑器猜一个猜错了就乱码。逗号冲突如果数据里有逗号“张三,贸易公司”CSV会被切成三列而不是两列。数字精度丢失00123存到CSV里被Excel打开时自动变成123。换行符干扰如果某个字段里包含换行符CSV的一行变成了多行。CSV → Excel标准转换流程importpandasaspd# CSV → Excel解决乱码和类型问题# 步骤1检测编码importchardetwithopen(rC:\data\source.csv,rb)asf:resultchardet.detect(f.read())encodingresult[encoding]print(f检测到编码{encoding}置信度{result[confidence]:.1%})# 步骤2用检测到的编码读取dfpd.read_csv(rC:\data\source.csv,encodingencoding,# 或直接指定 utf-8 / gbkdtypestr,# 关键所有列按字符串读避免数字被自动转换[video(video-a6LqGZIO-1783410945930)(type-csdn)(url-https://live.csdn.net/v/embed/526818)(image-https://v-blog.csdnimg.cn/asset/582d14c3bd0451c5399cd990b56e2a0d/cover/Cover0.jpg)(title-拼多多店群自动化报活动上架)]keep_default_naFalse,# 空字符串不要自动变成NaN)print(f读取完成{len(df)}行{len(df.columns)}列)# 步骤3写入ExcelExcel自带编码信息不存在乱码问题df.to_excel(rC:\data\output.xlsx,indexFalse,engineopenpyxl)print(转换完成)关键参数解释dtypestr强制所有列按字符串类型读取。防止00123变成123防止金额自动转成浮点数。keep_default_naFalsepandas默认会把空字符串、‘NA’、NULL’等识别为NaN。设成False后空字符串就是空字符串不被替换。encoding先用chardet自动检测比手动猜更可靠。Excel → CSV标准转换流程importpandasaspd# Excel → CSV dfpd.read_excel(rC:\data\source.xlsx,dtypestr)df.to_csv(rC:\data\output.csv,indexFalse,encodingutf-8-sig,# 用BOM的UTF-8Excel打开不会乱码quoting1,# QUOTE_ALL所有字段都加引号避免逗号冲突)print(转换完成)关键参数解释encodingutf-8-sig在文件开头加BOMByte Order Mark。Excel打开UTF-8 CSV时靠BOM来识别编码。没有BOMExcel默认当ANSI打开中文就乱码。utf-8-sig就是带BOM的UTF-8。quoting1csv.QUOTE_ALL所有字段都用引号包裹。这样字段里即使包含逗号、换行符也不会被误解析。# quoting1的输出效果 订单号,客户名,金额,备注 ORD001,张三,贸易公司,3580.50,包含,逗号也没问题 ORD002,李四科技,12000.00,多行 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4677bda02e014beda4489daa5437da1a.png#pic_center) 的备注也能正常处理影刀中的CSV操作影刀内置的【读取CSV】和【写入CSV】动作在编码处理上比较弱中文场景容易乱码。建议在Python节点里处理。如果非要用影刀内置动作记住两个要点写入CSV时【写入CSV】动作的属性里有一个编码选项选UTF-8。读取CSV时【读取CSV】动作同样有编码选项也要设置。但如果CSV是GBK编码的而你没意识到选了UTF-8就读出来乱码。判断CSV编码用记事本打开CSV文件 → 文件 → 另存为 → 看底部编码下拉框显示的是什么。如果是UTF-8那就是UTF-8编码。如果是ANSI多半是GBK。特殊场景处理场景1CSV分隔符不是逗号有些CSV用分号、tab、竖线做分隔符# 分号分隔的CSV欧洲常见dfpd.read_csv(data.csv,sep;,encodingutf-8)# Tab分隔的文件dfpd.read_csv(data.tsv,sep\t,encodingutf-8)# 竖线分隔dfpd.read_csv(data.txt,sep|,encodingutf-8)场景2CSV文件超大超过Excel的行数限制Excel一个Sheet最多1048576行。如果CSV超过这个数转成Excel需要拆分importpandasaspd chunk_size900000# 每90万行一个Excel文件chunk_num0forchunkinpd.read_csv(big_data.csv,chunksizechunk_size,dtypestr):chunk_num1outputfbig_data_part{chunk_num}.xlsxchunk.to_excel(output,indexFalse)print(f{output}{len(chunk)}行)场景3CSV中的数字前缀零丢失产品编码000123存到CSVExcel打开时自动识别为数字变成123。TEMU店群矩阵自动化运营核价报活动预防在Python里写入CSV时给这些字段加一个制表符前缀或单引号前缀# 写入时给可能以0开头的列加前缀df[产品编码]df[产品编码].apply(lambdax:f\t{x})# 制表符前缀Excel识别为文本或者在Excel里设置列格式为文本但这需要在openpyxl层面设置格式不适用于CSV。从根本上解决能不用CSV就不用了直接存成.xlsx。.xlsx支持列格式设置数字前面的零不会丢。为什么建议用xlsx替代CSV做RPA自动化时如果条件允许尽量在流程内部使用.xlsx格式维度CSVXLSX编码风险高无编码标识无自带编码数字精度易丢失可保持多Sheet不支持支持格式不支持支持文件大小小中等跨平台兼容好好只有在必须跟外部系统对接对方只收CSV时才用CSV。流程内部的中转文件一律用.xlsx。一句话CSV转Excel重点在编码检测和dtypestrExcel转CSV重点在utf-8-sig和quoting1。能把CSV替换成xlsx就替换。作者林焱

相关新闻

最新新闻

智能计算系统课程设计实战:从模型训练到边缘部署全流程指南

智能计算系统课程设计实战:从模型训练到边缘部署全流程指南

简介:边缘计算正成为AI落地的重要场景,而将深度学习模型高效部署到资源受限的设备上,是工程师必须掌握的核心技能。本文从模型训练、格式转换、量化压缩到硬件部署,系统梳理了智能计算系统课程设计中的完整链路。通过PyTorch导出O…

2026/8/26 23:52:20
测试工程师笔试:用例设计大题解析与实战技巧

测试工程师笔试:用例设计大题解析与实战技巧

1. 用例设计笔试大题解析的价值与定位 刚入行测试工程师那会儿,最让我头疼的就是笔试环节的用例设计大题。这些题目往往看似简单,却暗藏玄机——它们不仅考察基础测试理论,更检验实际业务场景的抽象能力和系统思维。记得第一次面试时&#xf…

2026/8/26 23:52:20
触觉感知与力控操作:从摸麻将到挤牙膏的机器人技能学习

触觉感知与力控操作:从摸麻将到挤牙膏的机器人技能学习

这次我们来看一个机器人操作技能学习方向的典型进展:让机器人“摸麻将”“挤牙膏”。乍看像是生活小实验,其实背后是具身智能里非常关键的触觉感知与力控操作问题。机器人如果只能靠视觉识别物体,很难完成需要“手感”的任务——麻将牌的厚度…

2026/8/26 23:52:20
AI厨天才CR3深度解析:全自主颠勺与蒸汽自清洁,烹饪机器人为何难在动作控制

AI厨天才CR3深度解析:全自主颠勺与蒸汽自清洁,烹饪机器人为何难在动作控制

看到“AI厨天才CR3”这个名字,我最先注意到的不是“AI”,也不是“厨天才”,而是“颠勺”两个字。过去几年,消费级烹饪机器人并不少,但绝大多数做的事情,是把搅拌、加热、时间控制这些环节集成到一个锅里&am…

2026/8/26 23:52:19
LoRaWAN设备接入MachineQ:从入网到数据上云实战指南

LoRaWAN设备接入MachineQ:从入网到数据上云实战指南

写这个LoRa系列写到现在,已经花了不少篇幅去聊调制原理、LoRaWAN协议栈、网关选型,也带着大家把开发板上的数据跑通过。前面几篇偏“地基”,这一篇终于要面对一个非常实际的问题:当设备数量超过十几个,当你要从纯实验环…

2026/8/26 23:52:19
时序攻击在访问控制中的应用:原理、检测与防御实战

时序攻击在访问控制中的应用:原理、检测与防御实战

在某个内部系统的授权测试里,我盯着 Burp 的响应时间一栏,发现两个返回状态完全相同的接口,响应时间却稳定差了 200 毫秒。那一次的经历让我彻底改掉了“只看状态码、不关心耗时”的习惯。所谓时序攻击(Timing Attacks&#xff09…

2026/8/26 23:47:19