使用csvkit的in2csv转换大XLSX为CSV时遇UnicodeEncodeError求助
解决csvkit in2csv转换大体积xlsx文件时的UnicodeEncodeError问题
问题原因
Windows命令行默认使用本地字符集(如GBK),当转换后的CSV包含该字符集无法识别的Unicode字符时,重定向输出会触发UnicodeEncodeError,导致转换提前中断,仅生成部分内容。
解决方案
以下几种方法可解决编码问题,确保完整转换大体积文件:
方法1:切换命令行编码为UTF-8
先在命令行执行以下命令切换编码:chcp 65001再执行原转换命令:
in2csv first.xlsx > second.csv注:命令行界面可能出现字体乱码,但生成的
second.csv是UTF-8编码的完整文件。方法2:指定in2csv输出编码
如果使用的csvkit版本≥1.0,可直接通过--output-encoding参数指定输出编码为UTF-8:in2csv --output-encoding utf-8 first.xlsx > second.csv方法3:使用PowerShell执行转换
PowerShell默认重定向输出为UTF-8编码,直接运行命令即可:in2csv first.xlsx > second.csv若需强制指定编码,可使用
Out-File:in2csv first.xlsx | Out-File -Encoding UTF8 second.csv
额外提示
对于1.4GB的超大xlsx文件,确保运行命令的Python环境有足够内存(可适当调整Python的内存限制),避免因内存不足导致转换失败。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

