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

Pandas使用to_csv导出CSV时如何将制表符分隔符替换为两个空格

错误原因

pandas.DataFrame.to_csv()的sep参数仅支持单字符字符串作为分隔符,多分隔符适配方案仅针对读文件的pd.read_csv()接口生效,该接口的sep参数支持正则表达式规则,但写文件的to_csv接口不支持该特性,因此传入\s+或直接传入双空格字符串都会触发单字符校验报错。

可行解决方案

方案1:字段直接拼接后写入

如果不需要复杂的格式化规则,可以直接将每行字段用双空格拼接后写入文件:

import csv
# 拼接表头和所有行数据
output_content = ['  '.join(df2.columns.astype(str))] + ['  '.join(row.astype(str)) for row in df2.values]
# 写入目标文件
with open('test.csv', 'w', encoding='utf-8') as f:
    f.write('\n'.join(output_content))

方案2:保留原有to_csv配置逻辑

如果需要沿用你原本设置的quoting、escapechar等格式化规则,可以先用冷门单字符做临时分隔符输出,再替换为双空格:

import csv
# 选择几乎不会出现在业务数据中的ASCII单元分隔符作为临时分隔符
temp_sep = '\x1f'
# 按原有配置输出为字符串
csv_content = df2.to_csv(index=False, sep=temp_sep, quoting=csv.QUOTE_NONE, quotechar="", escapechar=None)
# 替换临时分隔符为双空格
csv_content = csv_content.replace(temp_sep, '  ')
# 写入文件
with open('test.csv', 'w', encoding='utf-8') as f:
    f.write(csv_content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:00:04