Python写入CSV后Excel列显示混乱,如何解决?
解决CSV在Excel中挤入同一列的问题
问题根源分析
你的代码存在两个关键问题:
- 路径转义错误:Windows路径中的反斜杠
\是Python的转义字符,比如\U会被解析为Unicode转义序列,导致文件路径识别异常。 - 缺少必要参数配置:未指定
newline=''和合适的编码,可能导致CSV的分隔符被Excel错误解析,或文件格式异常。
修正后的代码
import csv # 使用原始字符串避免转义问题,同时指定newline=''和utf-8-sig编码 with open(r'C:\Users\admin\Documents\scraping\ddd.csv', 'w', newline='', encoding='utf-8-sig') as output_file: file = csv.writer(output_file) file.writerow(["name","age","N.W"])
关键修改说明
- 原始字符串路径:在路径前加
r,让Python将路径中的反斜杠视为普通字符,避免转义错误。 newline='':阻止Python自动转换换行符,确保CSV文件的换行符符合Excel的解析要求,避免出现空行或格式混乱。encoding='utf-8-sig':带BOM的UTF-8编码,让Excel能正确识别文件编码,避免分隔符被误判。
额外排查点
如果修改后仍有问题,检查Excel的区域设置:
- 部分非英文区域的Excel默认用分号作为CSV分隔符,此时需要显式指定分隔符:
file = csv.writer(output_file, delimiter=';')
内容的提问来源于stack exchange,提问作者Topest G
相关产品推荐
相关产品推荐

