Python 2写入Excel文件时的ASCII编码问题
嘿,我之前处理带中文的表格文件时也踩过这个编码坑,刚好能给你分享下我的经历和解决办法:
问题场景
我正在写一个简单的Python小工具,功能是自动补全表格里的空白单元格——规则是用同一列上方已经出现过的数据来填充。但因为文件里包含中文字符,一开始就担心ASCII编码的问题,特意把代码里的编码改成了UTF-8,结果问题还是没解决,终端依旧弹出编码相关的错误提示。
最终解决办法
折腾了一会儿后,我终于找到问题所在了:仅仅设置读取时的编码是不够的,在写入文件的环节必须明确指定UTF-8编码(甚至有时候需要用utf-8-sig来兼容不同系统)!
给你举两个常用场景的代码示例:
- 处理CSV文件时的写入代码:
import csv # 假设data_list是已经处理好的待写入数据 with open('filled_data.csv', 'w', encoding='utf-8', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerows(data_list)
- 用Pandas处理表格(CSV/Excel)时的写入代码:
import pandas as pd # 假设df是处理好的DataFrame # 处理CSV(utf-8-sig更兼容Windows系统) df.to_csv('filled_data.csv', encoding='utf-8-sig', index=False) # 处理Excel df.to_excel('filled_data.xlsx', encoding='utf-8')
加上这个编码标识后,中文乱码和编码报错的问题就完全解决了,现在我已经顺利完成操作啦!
内容的提问来源于stack exchange,提问作者Zisheng Ye
相关产品推荐
相关产品推荐

