Python 在循环中写入textfile而不替换

Python 在循环中写入textfile而不替换,python,file-io,while-loop,Python,File Io,While Loop,这个问题的答案在评论中。 所以我为学校写了一个程序,询问一个人将带什么参加局域网聚会的信息。这将在一个循环中发生,因此它将询问每个参与者,直到参与者数量达到256。我添加了一些代码,以便将一些行写入文本文件。 我的问题是,对于每个参与者,因此每次循环从头开始时,文本文件都会被替换。我似乎找不到解决办法。 以下是我的代码中的一些行: uid=0 while uid <= 256: fo = open('userID.txt','w') print("\nUserID: "

这个问题的答案在评论中。 所以我为学校写了一个程序,询问一个人将带什么参加局域网聚会的信息。这将在一个循环中发生,因此它将询问每个参与者,直到参与者数量达到256。我添加了一些代码,以便将一些行写入文本文件。 我的问题是,对于每个参与者,因此每次循环从头开始时,文本文件都会被替换。我似乎找不到解决办法。 以下是我的代码中的一些行:

uid=0
while uid <= 256:
     fo = open('userID.txt','w')
     print("\nUserID: ",uid)
     fo.write("\nUserID: " + str(uid))
fo.close()
input("")
uid=0

当uid时,不要在循环中重新打开文件。每次打开带有“w”的文件时,都会覆盖该文件

将fo.close()放在while循环之外,您就会没事了

uid=0
fo = open('userID.txt','w')
while uid <= 256:
    print("\nUserID: ",uid)
    fo.write("\nUserID: " + str(uid))
    input("")
fo.close()
uid=0
fo=open('userID.txt','w')

当uid时,您可以在
'a'
(追加)模式下而不是
'w'
打开文件,或者在循环外只打开一次。 您还可以使用
fo.flush()
将缓冲数据立即写入文件


实际上,不要在循环中重新打开文件,
w
将截断它。啊,好吧,我可以看出我的错误!非常感谢您的回答。:)我尝试了这种方法,但是我的文件被保留为空白,因为我在循环完成之前关闭了它。(原始代码有更多的输入,我在测试时从未完成过循环)我不认为有办法将未完成的循环保存到文本文件?@user2950983查看其他答案,您可以这样做。请识别您的代码以便更好地理解:)请缩进<代码>%s/\[tabbed\]/
您的意思是这样吗?