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

如何用Python移除CSV文件双引号内的逗号?

处理CSV文件中双引号内多余逗号的Python方案

针对大体积CSV文件中双引号内存在多余逗号、手动编辑效率低的问题,推荐两种可靠的Python处理方案,均不会修改引号外的分隔逗号:

方案一:使用标准库csv模块(推荐)

csv模块原生支持CSV格式解析,能准确识别双引号包裹的字段,避免正则处理的潜在问题,且流式处理内存友好,适合大文件场景。

代码实现

import csv

# 替换为你的输入输出文件路径
input_file = "source.csv"
output_file = "cleaned.csv"

# 逐行读取处理,避免加载整个大文件到内存
with open(input_file, "r", newline="", encoding="utf-8") as in_f, \
     open(output_file, "w", newline="", encoding="utf-8") as out_f:
    # 初始化CSV读写器,默认适配逗号分隔、双引号包裹的格式
    csv_reader = csv.reader(in_f)
    csv_writer = csv.writer(out_f)
    
    for row in csv_reader:
        # 对每个字段移除内部的逗号
        processed_row = [field.replace(",", "") for field in row]
        csv_writer.writerow(processed_row)

说明

  • csv.reader会自动将每行拆分为独立字段(即使字段内包含逗号),比如示例中第二行会被拆分为["A", "Agilent Technologies, Inc.", "null", "NYSE"]
  • 处理后的字段会被csv.writer自动按CSV规范格式化,必要时用双引号包裹,保证输出文件格式正确
  • 流式处理逻辑不会占用过多内存,适合GB级别的大文件

方案二:使用正则表达式(适合简单场景)

如果你的CSV文件不存在嵌套双引号(即字段内没有转义的""),可以用正则匹配双引号内的内容并替换逗号。

代码实现

import re

input_file = "source.csv"
output_file = "cleaned.csv"

# 匹配双引号内的非引号内容(仅适用于无嵌套引号的场景)
quote_pattern = re.compile(r'"([^"]+)"')

def remove_comma(match_obj):
    # 取出引号内的内容,替换逗号后重新包裹双引号
    return '"' + match_obj.group(1).replace(",", "") + '"'

with open(input_file, "r", encoding="utf-8") as in_f, \
     open(output_file, "w", encoding="utf-8") as out_f:
    for line in in_f:
        cleaned_line = quote_pattern.sub(remove_comma, line)
        out_f.write(cleaned_line)

注意事项

  • 若CSV字段中存在转义双引号(如"He said ""Hello""", Inc."),正则会匹配错误,此时优先使用方案一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:45:14