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

Python导出CSV时如何保留换行符\n实现数据原样存储?

问题:CSV导出时保留原始数据中的\n字符

我使用以下代码读取book1.csv并导出至save.csv:

import csv 
import pandas as pd
data = []
with open("book1.csv", "r") as f:
    reader = csv.reader(f)
    next(reader)
    for row in reader:
        data.append(row[0])
        print(data)
df = pd.DataFrame(data)
df.to_csv('save.csv', mode='a', header=True, index=False)

运行后输出的列表包含带\n的字符串,但导出到CSV时,\n被转换成了实际换行,无法保留原始的\n字符格式。


解决方案

方法1:转义换行符(直接保留\n字符显示)

在收集数据时,将字符串中的\n替换为\\n,这样保存到CSV后会以\n字符的形式存在:

import csv 
import pandas as pd
data = []
with open("book1.csv", "r") as f:
    reader = csv.reader(f)
    next(reader)
    for row in reader:
        # 转义换行符,将\n转为\\n
        processed_row = row[0].replace('\n', '\\n')
        data.append(processed_row)
        print(data)
df = pd.DataFrame(data)
df.to_csv('save.csv', mode='a', header=True, index=False)

方法2:通过CSV引用规则保留原始格式

利用csv模块的引用参数,确保包含特殊字符的字段被引号包裹,避免换行符被解析为行分隔(适合程序读取时还原原始数据):

import csv 
import pandas as pd
data = []
with open("book1.csv", "r") as f:
    reader = csv.reader(f)
    next(reader)
    for row in reader:
        data.append(row[0])
        print(data)
df = pd.DataFrame(data)
# 启用全字段引用,用反斜杠转义特殊字符
df.to_csv('save.csv', mode='a', header=True, index=False, quoting=csv.QUOTE_ALL, escapechar='\\')

说明:方法1会让\n在文本编辑器中直接显示为字符;方法2则通过引号包裹字段,用程序读取CSV时能完整还原带\n的原始字符串,但文本编辑器打开时仍会显示实际换行。根据你的需求选择对应方法。

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

相关产品推荐
方舟 Agent Plan

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

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