Python文件正确开闭时换行符\n不生效问题咨询
Python文件处理中换行符显示问题的解答
我的问题场景:
我正在学习Python,使用Jupyter编写代码,当前正在进行文件处理操作。我的代码如下:
file = open(r"C:\USERS\PRAGA\DESKTOP\TestFile.txt",'w') file.write("I can do it") file.close() file = open(r"C:\USERS\PRAGA\DESKTOP\TestFile.txt",'a') file.write("\nBelieve in yourself. Yes, you can do it.") file = open(r"C:\USERS\PRAGA\DESKTOP\TestFile.txt",'r') Last_content = file.read() Last_content
最终结果显示为:I can do it\nBelieve in yourself. Yes, you can do ...
想咨询为何文件已正确打开和关闭,但换行符\n在写入或追加内容时未生效?
问题解答:
别担心,这个问题其实非常常见,并不是你的换行符没生效,而是Jupyter的显示机制在搞怪!
- 文件内容其实是正确换行的:你可以直接打开本地的
TestFile.txt文件(用记事本、VS Code这类文本编辑器),里面的内容肯定是分成两行的——\n已经成功转换成了换行符写入文件,只是Jupyter显示变量的方式让你误以为没生效。 - Jupyter的变量显示逻辑:当你在Jupyter里直接输入变量名
Last_content并运行时,它会输出变量的repr()形式,也就是会把转义字符(比如\n)以字面形式展示,而不是解析成实际的换行效果。如果想要看到真实的换行,你需要用print(Last_content)来输出,这样Python就会把\n解析成换行,显示成两行内容。 - 更推荐的文件处理方式:另外建议你使用
with语句来操作文件,它会自动帮你关闭文件,避免手动close()可能带来的遗漏问题,代码会更简洁安全:
with open(r"C:\USERS\PRAGA\DESKTOP\TestFile.txt",'w') as file: file.write("I can do it") with open(r"C:\USERS\PRAGA\DESKTOP\TestFile.txt",'a') as file: file.write("\nBelieve in yourself. Yes, you can do it.") with open(r"C:\USERS\PRAGA\DESKTOP\TestFile.txt",'r') as file: Last_content = file.read() # 用print输出就能看到换行效果 print(Last_content)
内容的提问来源于stack exchange,提问作者Pragati
相关产品推荐
相关产品推荐

