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

Python CSV合并两列结果带多余引号问题修复求助

修复CSV列合并后出现多余引号的问题

问题原因

你遇到的多余引号问题,大概率是原CSV中的字段本身被引号包裹,读取时保留了引号内容,导致拼接后写入CSV时被自动转义,生成重复引号。

修复方案1:修正原csv模块代码

在处理列值时,先去除字段两端的引号,再进行替换和拼接:

import csv

with open('C:/asg/ftpfiles/output/NEWCATZ.csv', newline='') as csvfile:
    reader = csv.reader(csvfile)
    rows = []
    for row in reader:
        if len(row) >= 3:  # 确保列B(row[1])和列C(row[2])都存在
            # 先去除字段两端的引号,再处理内容
            col_b = row[1].strip('"').replace('*', '00').zfill(4)
            col_c = row[2].strip('"').replace('*', '00').zfill(4)
            row.append(col_b + col_c)
        rows.append(row)

with open('C:/asg/ftpfiles/output/NEWCATZ_updated.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerows(rows)  # 批量写入更高效

修复方案2:使用Pandas简化操作

既然你已经导入了Pandas,用它处理CSV会更简洁,且自动处理引号问题:

import pandas as pd

# 读取CSV文件
df = pd.read_csv('C:/asg/ftpfiles/output/NEWCATZ.csv')

# 处理列B和列C:去除引号、替换*为00、补全到4位
df['处理后列B'] = df.iloc[:, 1].astype(str).str.strip('"').str.replace('*', '00').str.zfill(4)
df['处理后列C'] = df.iloc[:, 2].astype(str).str.strip('"').str.replace('*', '00').str.zfill(4)

# 合并为新列D
df['列D'] = df['处理后列B'] + df['处理后列C']

# 写入新CSV,默认不会添加多余引号
df.to_csv('C:/asg/ftpfiles/output/NEWCATZ_updated.csv', index=False)

如果你的CSV有表头,可直接用列名替换iloc[:,1](比如df['B列名称']),代码可读性会更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:07:10