Python 读取文本文件时将 \n 更改为 \\n
Python changes \n to \\n when reading a text file
我有一个包含 \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 所说,您可以通过简单的替换手动修复它。知道为什么您的代码添加第二个反斜杠会很有趣...
我有一个包含 \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 所说,您可以通过简单的替换手动修复它。知道为什么您的代码添加第二个反斜杠会很有趣...