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

使用Pandas导入含注释CSV时多余引号问题的解决方法

解决pandas读取带#注释的inp文件导出csv时出现多余引号的问题

问题根源

使用pd.read_csv('op.inp', sep='delimiter')时,pandas会将每行解析为单个字符串字段。当行内包含逗号、引号或其他特殊字符时,导出CSV时pandas会自动添加引号包裹字段,导致出现多余引号(比如最后一行被额外包裹、部分行末尾出现异常引号)。

解决方案1:直接读写文件(无需pandas处理内容时优先用)

如果不需要对文件内容做数据处理,直接读取原文件的所有行并原样写入目标CSV,完全避免pandas的字段解析逻辑:

with open('op.inp', 'r', encoding='utf-8') as infile, open('out.csv', 'w', encoding='utf-8') as outfile:
    outfile.writelines(infile.readlines())

解决方案2:用pandas处理后无引号导出

如果需要用pandas做数据处理,先读取所有行转为DataFrame,再导出时禁用自动引号:

import pandas as pd

# 读取原始文件所有行,保留注释、空行和原格式
with open('op.inp', 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 转为DataFrame(如需处理内容可在此操作)
df = pd.DataFrame(lines, columns=['content'])

# 导出时禁用引号,不写索引和表头
df.to_csv(
    'out.csv',
    index=False,
    header=False,
    quoting=3,  # QUOTE_NONE,禁用所有引号
    escapechar=None  # 不需要转义字符
)

关键参数说明

  • quoting=3:对应csv.QUOTE_NONE,告诉pandas导出时不给任何字段添加引号。
  • header=False:因为原文件没有表头,避免导出时额外添加表头行。
  • index=False:避免导出时添加默认的索引列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:06:28