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

Pandas处理含内嵌双引号的制表符分隔文件格式错乱问题求助

解决Pandas读写含内嵌双引号的制表符文件格式问题

当使用Pandas读写包含内嵌双引号(如5.00")的制表符分隔文件时,默认参数会导致字段格式被破坏——比如原字段内容:

"Series 48SL–5 WEDGE–LOK, 2-56UNC-2B, 5.00", chem film, lock washer and flat

写入后会变成:

"Series 48SL–5 WEDGE–LOK, 2-56UNC-2B, 5.00, chem film, lock washer and flat"""

这是因为Pandas默认会解析双引号作为字段的包裹符号,并自动转义内嵌的双引号(将单个双引号转为两个)。要保持输入输出格式完全一致,需要修改读写时的参数:

import pandas as pd
import csv

exp_fn = r"test.exp"
# 读取时关闭引号解析,将双引号视为普通文本字符
exp_df = pd.read_csv(exp_fn, sep='\t', dtype=str, encoding='mbcs', quoting=csv.QUOTE_NONE)
# 写入时关闭引号解析,不添加额外引号,不转义双引号,同时不写入索引列
exp_df.to_csv(r"check.exp", sep='\t', index=False, quoting=csv.QUOTE_NONE)

关键参数说明:

  • quoting=csv.QUOTE_NONE:强制Pandas在读写过程中不处理任何引号,所有双引号都被当作普通内容保留,不会被解析为字段包裹符,也不会被自动转义。
  • index=False:避免写入额外的索引列,保证输出文件的列结构与输入完全一致。

如果原文件中部分字段确实是用双引号包裹的(仅作为字段边界,而非内容),可以调整为quoting=csv.QUOTE_ALL并配合doublequote=False,但这种情况需要确保原文件的引号格式符合标准CSV规范。对于你的场景,直接关闭引号解析是最直接的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:17:20