文本文件中的整数值不变

时间:2019-01-22 16:25:03

标签: python

我有一个函数可以检索文本文件中当前值,然后在程序结束时让它将值增加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

1 个答案:

答案 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