如何在新的lin上附加新数据

2024-03-29 11:12:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码如下:

def storescores():

   hs = open("hst.txt","a")
   hs.write(name)
   hs.close() 

所以如果我运行它并输入“Ryan” 然后再次运行并输入“Bob” 文件hst.txt看起来像

RyanBob 

而不是

Ryan
Bob

我该怎么解决?


Tags: 文件代码nametxtclosedefopenwrite
3条回答

在Python>;=3.6中,您可以使用新的string literal功能:

with open('hst.txt', 'a') as fd:
    fd.write(f'\n{name}')

请注意使用“with statment”将在fd超出范围时自动关闭文件

如果你想要换行,你必须显式地写一行。通常的方式是这样的:

hs.write(name + "\n")

它使用反斜杠转义\n,Python将其转换为字符串文本中的换行字符。它只是将字符串name和换行符连接成一个更大的字符串,然后写入文件。

也可以使用多行字符串文字,如下所示:

"""
"""

或者,您可能希望使用字符串格式而不是连接:

hs.write("{}\n".format(name))

所有这些都在本教程的Input and Output一章中进行了解释。

所有的答案似乎都很有效。如果您需要多次这样做,请注意

hs.write(name + "\n")

在内存中构造一个新字符串并将其追加到文件中。

效率会更高

hs.write(name)
hs.write("\n")

它不创建新字符串,只是附加到文件中。

相关问题 更多 >