读取文本文件时,Python将\ n更改为\\ n

问题描述

我有一个文本文件,其中包含\ n作为新行。

在Python 3.6中,当我使用以下代码加载它时:

file = open(file_name,'r')
contents = file.read()

将所有\ n更改为\\ n。例如:

txt文件中的原文:

This is a test \n plus senond \n test.

用Python阅读后:

"This is a test \\n plus senond \\n test."

我需要保留所有\ n作为新行,并对其进行更多分析(使用reg ex)。

读取文件并解决此问题的正确方法是什么?

解决方法

在Python中读取文件时,默认情况下会保留所有实际的换行符(换行符/ LF,十六进制值0x0A)。 但是您的文件似乎包含转义序列,您希望将其转换为实际的单个换行符。

在这种情况下,只需使用:print(contents.replace("\\n","\n"))

,

从哪里获得双反斜杠输出?我自己进行了测试,然后打印从文件读取的内容,然后将其写回到另一个文件,似乎只保留了一组...

代码:

file = open("test.txt",'r')
contents = file.read()
print(contents)
file.close()
file2 = open("test2.txt","w")
file2.write(contents)
file2.close()

两个包含的输入文件的编码

This is a test \n plus senond \n test.
在我的情况下,

和输出文件(结果完全相同)是UTF-8。也许与此有关吗?只是猜测

我无法复制您的问题,但正如shredEngineer所说,您可以通过简单的替换手动修复它。知道为什么您的代码为什么会添加第二个反斜杠会很有趣...

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...