如何通过用户输入将用户信息永久存储到Python字典中?
实现用户信息永久存储
要解决重启脚本后新用户数据丢失的问题,核心是把内存中的字典数据持久化到磁盘文件里。推荐使用JSON格式存储,它天然适配Python字典的键值对结构,读写操作简单且易维护。
修改后的完整代码
import json # 定义存储用户数据的文件路径 USER_FILE = "users.json" def load_users(): """从JSON文件加载用户数据,文件不存在则返回初始用户字典""" try: with open(USER_FILE, "r", encoding="utf-8") as f: return json.load(f) except FileNotFoundError: # 文件不存在时返回预设的初始用户 return { "Hi": "HM123", "alan": "12122", "12": "11" } def save_users(users): """将用户数据写入JSON文件""" with open(USER_FILE, "w", encoding="utf-8") as f: json.dump(users, f, indent=4, ensure_ascii=False) def adder(): users = load_users() # 先加载已存储的用户数据 new_user = input("Please enter user's name: ").strip() new_pwd = "" confirmer = "0" while new_pwd != confirmer: new_pwd = input("please enter a new Password: ").strip() confirmer = input("please confirm your password: ").strip() if new_pwd != confirmer: print("passwords does not match!!") users[new_user] = new_pwd save_users(users) # 添加用户后立即保存到文件 print("User added successfully!") adder()
关键逻辑说明
- 加载数据:启动脚本时通过
load_users()读取本地JSON文件,若文件不存在则使用预设的初始用户字典,确保每次启动都能获取最新的用户数据。 - 保存数据:新增用户后调用
save_users()将整个用户字典写入文件,把内存中的修改同步到磁盘,实现数据持久化。 - JSON格式优势:可读性强,方便手动查看或调整用户数据(如需),同时Python的
json模块可直接完成字典与JSON文件的格式转换。
运行脚本后,当前目录会生成users.json文件,所有新增用户都会保存在该文件中,重启脚本后数据不会丢失。
内容的提问来源于stack exchange,提问作者Hamza mh
相关产品推荐
相关产品推荐

