假设我有一个单独的文本文件,其中包含一系列数字:
1
2
3
等等。 Python程序是否可以随机选择该文本文件中的一个数字,然后从文本文件中删除该数字?我知道有可能做到第一部分,但我正在努力与第二部分。
如果有帮助,列表大约是180000个数字。我很陌生。我们的想法是随机为玩家分配一个号码,然后从列表中删除该号码,以便其他玩家无法获得该号码。
答案 0 :(得分:2)
你真的有180,000名球员吗?如果没有,反过来如何解决问题:
这比每次读取,检查和写入大文件要快得多。如果您的ID很大,则不会发生多次碰撞。
您还可以优化流程,例如使用由今天的日期和随机数组成的两部分ID。然后,您将保留每天的文件,并且只需要检查与今天发布的ID的冲突。
答案 1 :(得分:1)
我要说的是,你读完整个文本文件,对它做任何想做的改动,然后重写文件的原始内容,这是我知道的最好方法< / p>
答案 2 :(得分:1)
如果文件很小,请将整个内容读入列表,从列表中删除一个值,然后将新列表写入临时文件。最后,将临时文件重命名为原始文件名。
如果文件很大,请一次读取一行文件,将值(一个除外)写入临时文件。然后将临时文件重命名为原始文件名。
答案 3 :(得分:0)
与dstromberg said类似,如果文件较小,请查看documentation on file IO和this answer的策略,将列表写入文件。请注意,writelines()
“不会添加行分隔符。”