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

Python读取文件时\n转义字符未解析为换行的解决方法

解决Python读取文件时字面\n不解析为换行的问题

嘿,这个场景我太熟悉了!问题出在你的greetings.txt文件里的\n是字面的两个字符(也就是实际存储的是反斜杠\和字母n),而不是Python默认能识别的换行转义序列。要让程序把它转换成真正的换行,这里有几个实用的办法:

方法1:直接替换字面\n

如果你的文件里只有\n这一种转义需要处理,用字符串的replace()方法最直接:

with open("greetings.txt", "r") as f:
    readit = f.read().replace('\\n', '\n')
print(readit)

这里的'\\n'是因为在Python字符串里,反斜杠需要转义,它代表的就是文件里的字面\n,替换成真正的换行符'\n'后,打印就会自动换行了。(用with语句能自动管理文件关闭,比手动close()更安全)

方法2:用ast.literal_eval解析所有转义序列

如果你的文件里可能还有其他转义字符(比如\t制表符、\"双引号),用ast.literal_eval可以一次性解析所有合法的Python转义序列:

import ast

with open("greetings.txt", "r") as f:
    raw_content = f.read()
    readit = ast.literal_eval(repr(raw_content))
print(readit)

repr(raw_content)会把读取到的原始字符串转换成带转义的表示,ast.literal_eval则会把它解析成真正的转义后的字符串,安全又通用。

方法3:指定文件编码为unicode_escape

Python 3.3及以上版本支持在打开文件时指定encoding='unicode_escape',直接让文件读取阶段就解析转义序列:

with open("greetings.txt", "r", encoding='unicode_escape') as f:
    readit = f.read()
print(readit)

这个方法最简洁,一步到位就能把所有unicode转义序列转换成对应的字符。

选哪种方法看你的实际需求啦——只是处理换行的话,方法1足够;有多种转义的话,方法2或3更省心。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:29:36