You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python追加CSV为UTF-8格式异常,如何实现Excel逐行追加?

解决CSV追加时格式错乱并实现Excel新行追加的方法

核心问题分析

  1. newline参数错误:原代码中newline='\n'的写法不符合csv模块要求,会导致不同系统下换行符处理异常,引发格式错乱。
  2. 数据格式不匹配:csv.writer.writerow()要求传入可迭代对象(如列表),若直接传入单个字符串,会被拆分为单个字符分散到不同单元格,造成格式混乱。

修正方案

1. 修正代码参数与数据格式

使用csv模块官方推荐的newline=''设置,并确保写入数据为列表格式,保证整段文本作为单个单元格:

import csv

# 将待写入文本包装成列表,避免被拆分
transtext = ["Problem in new ITR portal, Finance Minister told Infosys- New Delhi Finance Minister Nirmala Sitharaman took the help"]

with open('data.csv', 'a', newline='', encoding='utf-8') as fd:
    writer = csv.writer(fd)
    writer.writerow(transtext)

2. 兼容Excel的编码优化

若Excel打开CSV仍出现乱码,可将编码改为utf-8-sig(带BOM头),让Excel自动识别UTF-8编码:

with open('data.csv', 'a', newline='', encoding='utf-8-sig') as fd:
    writer = csv.writer(fd)
    writer.writerow(transtext)

3. 额外注意事项

  • 确保已有CSV文件的编码与写入时使用的编码一致(均为UTF-8或utf-8-sig),避免编码冲突导致乱码。
  • 若需批量追加多条数据,可使用writerows()方法传入二维列表,一次性写入多行。

内容的提问来源于stack exchange,提问作者jeniffer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:10:52