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
相关产品推荐
相关产品推荐

