如何在文本文件中的字符串末尾添加换行符?

How do I add a linebreak at the end of a string in text files?

我试过这样做:

with open("contactbook.txt","a") as f:
     f.write("hello\n")

但它被打印为:

'hello\n'

我读取文件的代码:

with open("contactbook.txt","r") as f:
     lines = sorted(f.readlines())
     print(lines)

编辑:

我试图检查文本文件,\n 确实被解释为换行符!

但是在python的shell中它仍然显示为\n

我做错了什么?是因为我打印的方式吗?

写得很好。

问题在于,当您读回文件时,您会在单个 print(lines) 语句中打印出整个 lines 列表;这将为您提供一个适合调试的表单,而不是真正用于向最终用户显示的表单,包括将控制字符写为 \n 等。

如果您以任何其他方式检查该文件,您将能够确认它包含您想要的内容。

以防万一有像我一样的人遇到同样的问题...

我之前的代码的问题是我打印它的方式,所以通过将我 read/print 它的方式更改为:

with open('contactbook.txt', 'r') as f:
     for lines in sorted(f):
          print(lines, end='')

现在可以使用了!

sabik 的回答让我意识到了这一点! :)