Python打印文本文件时\n未换行反而输出字符的问题排查
解决测验结果文件打印时
\n不换行的问题 嘿,这问题我之前也碰到过!你现在看到的是Python把文件内容当成列表元素打印,直接显示了转义字符\n,而没有解析成实际的换行。这大概率是因为你用了readlines()这类方法读取文件,它会把每一行(包括末尾的换行符)作为列表的一个元素存储,直接打印列表就会出现这种情况。
下面给你几个简单的解决方案:
方案1:直接读取整个文件内容
用read()方法一次性读取整个文件,它会自动解析所有换行符,直接打印就能得到正常格式:
# 替换成你的文件路径 with open("quiz_results.txt", "r") as result_file: full_content = result_file.read() print(full_content)
方案2:处理已读取的列表内容
如果你已经用readlines()拿到了列表(就是你输出的那个列表),可以用两种方式处理:
方式A:遍历列表逐个打印
遍历列表里的每一行,打印时注意避免重复换行(因为每个元素本身已经带\n了):
with open("quiz_results.txt", "r") as result_file: lines_list = result_file.readlines() for line in lines_list: print(line, end="") # end=""取消print默认的额外换行
方式B:用join拼接成字符串再打印
把列表里的所有元素拼接成一个完整的字符串,再打印就会自动解析换行:
with open("quiz_results.txt", "r") as result_file: lines_list = result_file.readlines() print("".join(lines_list))
简单说下原理:直接打印列表时,Python会输出每个元素的原始字面形式(包括转义字符);而把元素拼接成字符串或者逐个打印时,Python会解析\n为实际的换行操作,这样就和文件里的格式一致啦!
内容的提问来源于stack exchange,提问作者Jamie Wilson
相关产品推荐
相关产品推荐

