每次执行添加语句时如何更新文件?

时间:2019-03-01 02:24:01

标签: python

以下面的代码为例:

num = 0

print("Hello World.") #just to know it ran
num += 1

fh = open("test.txt", "a")
fh.write(f"{num}\n")

每次运行该文件都会打开一个数字为1的文本文件。 但是对于我来说,我想要它,因此每次您运行该程序时它将加1 因此,如果您运行一次,它将附加1,然后运行两次,附加2,依此类推...

1 个答案:

答案 0 :(得分:1)

我不确定是否正确理解,但我理解的是您在输入文件中(开始时为空),然后在脚本包含以下内容时运行该脚本:

viewModelStore.clear()

如果再次运行它:

ViewModel

并且在 n 次之后:

1

如果我正确理解,则需要:

  1. 读取文件以找到最后一个值
  2. 将此值+ 1附加到文件中

翻译为:

1
2

如果文件更复杂,则您需要在1 2 3 ... <n> 内做一些更多的工作来提取您最后写入的值。或者在这种情况下,也许最好的解决方案甚至是将您写入的最后一个值存储在另一个文件中。

有关次要细节的一些解释:

  • def file_last_line(file_name): line = None with open(file_name, "r") as f: for line in f: pass return line def append(file_name, value): with open(file_name, "a") as f: f.write(f"{str(value)}\n") def increment(file_name): last_line = file_last_line(file_name) or 0 last_value = int(last_line) append(file_name, last_value+1) increment("test.txt") 的声明使您可以在file_last_line循环结束时将其保存以免被破坏
  • line = None是以下各项的快捷方式:
for