为什么我的文件在 Python 中从一开始就没有被覆盖,为什么我不能读取整行?

所以,我有一个程序,它获取第一个随机数,然后以两个变量的形式存储在文件中的另外两个数字。我的问题从我尝试从文件中获取变量的那一刻开始。

import random
tries = random.randint(0,20)
output = open("Results","r+")
average = int(output.readline(1))
coef = int(output.readline(2))
first_line = (average * coef + tries)
first_line = str(first_line)
second_line = coef + 1
second_line = str(second_line)
output_text = first_line + "\n" + second_line
output.write(output_text)
output.close()

我已经有一个包含以前结果的结果文件,如下所示:

11
1

运行一次程序并获得尝试数 = 13 次后,结果文件如下所示:

11
114
2

我想要的地方:

24
2

我认为问题部分来自这样一个事实,当我尝试阅读过去的结果时,结果是平均值 = 1 和系数 = 1,其中平均值假定等于 11。而另一部分来自当我尝试将它们写回我的文件的那一刻。

附言:我正在使用 Anaconda 发行版中的 Python 3.9.6 和 Spyder。 附言: 我的帖子怎么了?我只是想知道让我以后的帖子变得更好的原因。

wyzxf101 回答:为什么我的文件在 Python 中从一开始就没有被覆盖,为什么我不能读取整行?

非常感谢@ThePhoton 和一些谷歌搜索,我设法让它全部工作,所以这是我的新代码:

import random
tries = random.randint(0,20)
output = open("Results","r")
somme = int(output.readline())
coef = int(output.readline())
output.close()
output = open("Results","w")
first_line = somme + tries
second_line = coef + 1
first_line = str(first_line)
second_line = str(second_line)
output_text = [first_line,"\n",second_line]
output.writelines(output_text)
output.close()
本文链接:https://www.f2er.com/524.html

大家都在问