在 python 3.7 中将文字 ' "\n" ' 写入文档文件时出现问题

Problem writing literal ' "\n" ' to a document file in python 3.7

感谢您的阅读。我目前正在努力解决 Python 3.7 中一个看似简单的问题,这让我抓狂。该论坛中的类似主题对我没有产生有效的解决方案。

我有一个具有以下结构的文档:

line1

line2 

line3

我必须解析为如下格式:

"line1\n"

"line2\n"

等等

遗憾的是,虽然我可以使用 repr('\n"') 或 ('//n'") 使更改的行在终端上正确显示,但每当我尝试使用 . write() 或使用 >> 重定向,在 \n 的位置添加了一个额外的换行符,尽管有 repr、// 或 r,所以文件中的输出看起来像:

”行 \n

有问题的代码行是: ''' '"' + str(line) + '//n"' #or + repr('/n"') ''' 我也试过: ''' '"' + str(line) + '//n'.replace('//n', '/n') ''' 根据另一个用户的建议。

r"/n" 似乎什么都不做。欢迎任何建议,以及有关如何在 shell 中解决此问题的建议。 谢谢你的时间。

也许如果你尝试使用 readlines:

#write into the file !
file = open("yourpath", "w")   #w is for write
mylistofstrings = ["line1", "\nline2", "\nline3"]
file.writelines(mylistofstrings)
file.close()
#read the output to check :
file = open("yourpath", "r")   #r is for read
print(file.read())
file.close()

输出:

line1
line2
line3

警告:如果您像此处那样使用"w" 进行写入,它会在写入前清除整个文件。如果要追加,只需使用 "a" 进行追加。以下是所有可能的打开方式: "r" 打开文本文件进行阅读。流位于 文件开头。

"r+" 读写打开。流位于 文件开头。

"w" 将文件截断为零长度或创建文本文件以供写入。 流位于文件的开头。

"w+" 读写打开。如果是,则创建文件 不存在,否则被截断。流是 位于文件开头。

"a" 打开以追加(写入文件末尾)。该文件是 如果不存在则创建。流位于 文件结尾。

"a+" 打开以进行读取和追加(在文件末尾写入)。这 如果文件不存在,则创建该文件。初始文件 读取位置在文件的开头,但是 输出总是附加到文件的末尾。

告诉我它是否有效,是否有用!

编辑:在我看到一条评论后,才意识到:你使用了 / 而不是 \,所以它不能工作...一定要使用 \n! XD

据我了解,您想在输出文件中保留新行 + 将 \n 添加到每行的末尾。看看下面是否适合你。

with open('source.txt') as f:
    list_ = [(line.strip() + r'\n') for line in f if line != '\n']

print(list_)

with open('output.txt', 'w') as wb_file:
    wb_file.write('\n\n'.join(list_))

list_ 是使用列表理解构造的。在每个读取行的末尾添加假的 '\n'。

写入文件时,我使用了 join 和 2 个额外的 \n,因为您的输出保留了换行符。如果不想在输出中换行,可以删除并保留一个 \n 。