如何修改CSV文件分隔符及解决charmap编码解码报错问题
修改CSV文件分隔符的方法
- 用Python原生csv模块处理时,可通过
delimiter参数指定自定义分隔符:
读文件示例:csv.reader(open('源文件.csv', 'r', encoding='utf-8'), delimiter=';')
写文件示例:csv.writer(open('新文件.csv', 'w', encoding='utf-8'), delimiter='\t') - 用Pandas处理时,可通过
sep参数指定分隔符:
读文件示例:pd.read_csv('源文件.csv', sep='|')
写文件示例:df.to_csv('新文件.csv', sep='\t', index=False) - 手动修改可通过Excel/ WPS表格打开CSV文件,另存为CSV格式时在高级设置中自定义分隔符;也可使用VS Code等文本编辑器直接全局替换分隔符,注意规避内容内的同字符误替换。
解决UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d报错
该报错的核心原因是读取文件时使用了系统默认编码(Windows系统默认为GBK/Charmap),无法匹配文件实际使用的编码,可按以下顺序尝试解决:
- 读取文件时明确指定编码为utf-8:
原生Python写法:open('目标文件.csv', 'r', encoding='utf-8')
Pandas写法:pd.read_csv('目标文件.csv', encoding='utf-8') - 若指定utf-8仍报错,可尝试其他常见编码:
utf-8-sig(适配带BOM的UTF-8文件)、latin-1、cp1252 - 临时排查场景可添加errors参数忽略解码错误,该方法会丢失无法解码的字符,不建议生产环境使用:
示例:open('目标文件.csv', 'r', encoding='utf-8', errors='ignore')
内容的提问来源于stack exchange,提问作者nyorker
相关产品推荐
相关产品推荐

