首页 > 解决方案 > 文本文件中的整数值不变

问题描述

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

标签: python

解决方案


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

推荐阅读