Python使用csv reader读取csv时\n未转换为实际换行的问题
问题形成原因
- csv模块默认转义配置问题
Python的csv.reader默认未启用反斜杠转义识别,escapechar参数默认值为None,此时文件中存储的\n会被识别为「反斜杠+字母n」两个独立的普通字符,直接输出字面内容,不会被解析为实际的换行控制符。 - CSV标准规范的默认适配
标准CSV规范(RFC 4180)中,字段内的原生换行直接放在被双引号包裹的字段中即可,不需要通过反斜杠转义表示,因此csv模块默认遵循该规范,不会额外处理反斜杠开头的转义序列。 - 打印输出的显示误区
如果读取后直接打印包含该字段的列表、元组等容器对象,Python为了展示字符串的原始结构,会自动将实际的换行符转义为\n字面形式输出,只有单独打印字符串本身时才会渲染为换行效果。
参考修复方案
如果需要识别文件中的反斜杠转义序列,初始化csv.reader时显式指定escapechar参数即可:
import csv with open('你的文件路径.csv', 'r', encoding='utf-8') as f: # 显式指定反斜杠为转义符 reader = csv.reader(f, escapechar='\\') for row in reader: # 单独打印字段才会展示实际换行效果 for cell in row: print(cell)
内容的提问来源于stack exchange,提问作者GSGregory
相关产品推荐
相关产品推荐

