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

Python自动更新存储账号密码的外部字典文件失败如何解决

注意:本项目极易遭受网络攻击,仅为模拟服务,不存储任何真实敏感信息

问题原因

你当前的写法只是修改了内存中加载的users_details模块对象的属性,所有修改都只会保留在程序运行期间,程序结束后内存数据就会释放,不会自动写入到对应的users_details.py源文件里,所以下次启动程序时会读取到原始的文件内容,看不到上次的修改。

解决方案

推荐优先使用JSON文件存储用户数据,操作更稳定,不会破坏源代码文件,实现逻辑如下:

  1. 先在项目目录下新建user_data.json文件,写入初始内容:
{
  "user_details": {},
  "user_balance": {}
}
  1. 替换你原有代码为以下内容:
import json

# 程序启动时读取已存储的用户数据
with open("user_data.json", "r", encoding="utf-8") as f:
    user_data = json.load(f)
user_details = user_data["user_details"]
user_balance = user_data["user_balance"]

print("欢迎新用户,您可以在此注册账号!")
desired_username = input("请输入您想要使用的用户名:")

if desired_username in user_details:
    print("您已经有账号了,请直接登录")
else:
    print("用户名可用!请输入密码")
    print("密码无特殊限制,请妥善保管")
    desired_password = input("请在此输入密码:")
    print("正在将您的信息添加到数据库并生成初始余额...")

    user_details[desired_username] = desired_password
    user_balance[desired_username] = 1000

    # 将修改后的用户数据写回JSON文件持久化存储
    with open("user_data.json", "w", encoding="utf-8") as f:
        json.dump(
            {"user_details": user_details, "user_balance": user_balance},
            f,
            ensure_ascii=False,
            indent=2
        )
    
    print("您的账号已注册成功!")

如果你确实需要直接写入users_details.py源文件,可以用以下方案(风险提示:写入过程出错会直接破坏源文件,不推荐生产环境使用):

import users_details

print("欢迎新用户,您可以在此注册账号!")
desired_username = input("请输入您想要使用的用户名:")

if desired_username in users_details.user_details:
    print("您已经有账号了,请直接登录")
else:
    print("用户名可用!请输入密码")
    print("密码无特殊限制,请妥善保管")
    desired_password = input("请在此输入密码:")
    print("正在将您的信息添加到数据库并生成初始余额...")

    users_details.user_details[desired_username] = desired_password
    users_details.user_balance[desired_username] = 1000

    # 将修改后的字典直接覆盖写入源文件
    with open("users_details.py", "w", encoding="utf-8") as f:
        f.write(f"user_details = {repr(users_details.user_details)}\n")
        f.write(f"user_balance = {repr(users_details.user_balance)}\n")
    
    print("您的账号已注册成功!")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:48:02