我有一个函数可以检索文本文件中当前值,然后在程序结束时让它将值增加1。但是,值并不总是增加。可能是什么原因?
获取var值
def get_var_value(filename="varstore.dat"):
with open(filename, "r+") as f:
val = int(f.read() or 0)
f.seek(0)
f.truncate()
return val
将值增加1:
def increase_var_value(filename="varstore.dat"):
with open(filename, "r+") as f:
val = int(f.read() or 0) +1
f.seek(0)
f.truncate()
f.write(str(val))
return val
答案 0 :(得分:2)
get_var_value
函数不需要查找和截断文件。它在increment_var_value
之前删除文件内容会读取它。因此,increment_var_value
始终将其读取为0,然后将其递增1,因此该值始终为1。
现在的代码为
def get_var_value(filename="varstore.dat"):
with open(filename, "r") as f:
val = int(f.read() or 0)
return val
def increase_var_value(filename="varstore.dat"):
with open(filename, "r+") as f:
val = int(f.read() or 0) + 1
f.seek(0)
f.truncate()
f.write(str(val))
return val