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

Python CSV读写如何保留双引号?添加列后格式异常问题

解决CSV保留双引号格式并添加列的问题

要实现保留原CSV的双引号格式(包括表头、空值)并添加新列,关键是在使用csv.writer时设置强制所有字段加引号的参数,同时保持读写时的格式一致性。

完整代码实现

import csv

# 读写CSV文件,注意newline=''避免额外空行,指定编码保持字符一致
with open('input.csv', 'r', newline='', encoding='utf-8') as infile, \
     open('output.csv', 'w', newline='', encoding='utf-8') as outfile:
    
    # 读取原文件,写入时强制所有字段用双引号包裹
    csv_reader = csv.reader(infile)
    csv_writer = csv.writer(outfile, quoting=csv.QUOTE_ALL)
    
    # 处理表头:添加新列名
    header_row = next(csv_reader)
    header_row += ['col_1', 'col_2']
    csv_writer.writerow(header_row)
    
    # 处理数据行:添加新列值(示例设为空,可按需修改)
    for data_row in csv_reader:
        # 原空值会被解析为空字符串,writer自动转为""
        data_row += ['', '']  # 替换为你的实际业务值
        csv_writer.writerow(data_row)

关键参数说明

  • quoting=csv.QUOTE_ALL:这是核心设置,告诉csv.writer给所有字段(包括表头、空值、普通文本)都加上双引号,完全匹配原文件的格式。
  • newline='':按照Python官方文档要求,读写CSV时必须设置这个参数,避免Windows系统下生成额外的空行。
  • 编码一致性:读写时使用相同的编码(比如utf-8),防止中文或特殊字符乱码。

特殊情况处理

如果你的CSV使用了非逗号的分隔符(比如分号;),只需在csv.reader和csv.writer中添加delimiter参数:

csv_reader = csv.reader(infile, delimiter=';')
csv_writer = csv.writer(outfile, delimiter=';', quoting=csv.QUOTE_ALL)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:08:10