You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python游戏JSON存档系统问题:计数器重启后无法保留计数

解决Python计数器无法持久化存储的问题

你的代码存在的核心问题

  • 从未修改计数器值:你只是反复读取和写入初始从文件加载的data,但从头到尾没有对data['part']进行递增操作,所以不管运行多久还是重启程序,值都不会变化。
  • 缺少文件容错处理:如果第一次运行时data.json不存在,程序会直接抛出文件不存在的错误。
  • 冗余的IO操作:循环里先写再读的操作完全没必要,既浪费资源又逻辑混乱。

修正后的代码

import json
import time

# 初始化计数器,处理文件不存在的情况
try:
    with open("data.json", "r") as read_file:
        data = json.load(read_file)
        # 确保数据结构正确,避免文件内容异常
        if "part" not in data:
            data["part"] = 0
except FileNotFoundError:
    # 文件不存在时创建初始数据
    data = {"part": 0}

while True:
    # 真正递增计数器
    data["part"] += 1
    # 保存更新后的数据到文件
    with open("data.json", "w") as write_file:
        json.dump(data, write_file)
    # 打印当前计数器值
    print(f"当前计数: {data['part']}")
    time.sleep(1)

关键修正说明

  • 添加文件容错:用try-except捕获FileNotFoundError,第一次运行时自动创建初始的计数器数据。
  • 实际修改计数器:在循环里执行data["part"] += 1,真正更新计数数值。
  • 简化IO逻辑:每次递增后直接写入文件,去掉不必要的重复读取操作,提升运行效率。
  • 数据结构校验:检查data中是否存在part键,避免文件内容损坏导致程序出错。

内容的提问来源于stack exchange,提问作者Luka22r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:39:57