这个问题的答案在评论中有所下降。 所以对于学校我写了这个程序,询问有关一个人带给局域网的信息。这将在循环中发生,因此它将询问每个参与者,直到参与者编号达到256.我添加了一些代码,因此某些行将被写入文本文件。 我的问题是,每个参与者,所以每次循环从头开始,文本文件将被替换。我似乎无法找到在哪里寻找解决方案。 这是我的代码中的一些行:
uid=0
while uid <= 256:
fo = open('userID.txt','w')
print("\nUserID: ",uid)
fo.write("\nUserID: " + str(uid))
fo.close()
input("")
现在,我的文本文件将显示我关闭程序时显示的uid(用户ID)。 所以1或5或200,但我想要的是它显示一切,直到我关闭程序: 0 1 2 3 4 等等... 可以这么说,加强而不是替换。
写一个文本文件方面是我为了好玩而做的事情。我已经递交了该程序,但仍想解决我的问题。我是一名初学程序员,这是我第一次编程。
答案 0 :(得分:1)
不要在循环中重新打开文件。每次使用'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()
如另一个答案中所建议的那样,您可以使用'a'写入模式(如果您需要读取和写入,则使用'a +'),但请注意,每次运行时都会将新数据附加到文件中程序,因此每个程序运行结果将一个接一个地记录下来。
答案 1 :(得分:1)
您可以使用'a'
(追加)模式而不是'w'
打开文件,或者只在循环外打开一次。
您也可以使用fo.flush()
立即将缓冲数据写入文件