0

这个问题的答案在评论中。 所以对于学校,我编写了这个程序,它询问一个人将带什么到局域网派对的信息。这将在循环中发生,因此它会询问每个参与者,直到参与者人数达到 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 等等......可以说是增强而不是替换。

写入文本文件方面是我为了好玩而做的事情。我已经提交了程序,但仍然想解决我的问题。我是一名初级程序员,这是我拥有的第一个编程块。

4

2 回答 2

1

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

更多关于缓冲

于 2013-11-03T23:57:58.137 回答
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+”),但请注意,每次运行程序时,这都会将新数据附加到文件中,因此每个程序的运行结果都会一个接一个地记录下来。

于 2013-11-03T23:46:16.157 回答