Python列表添加用户姓名后重启程序丢失问题求助
解决思路:持久化存储数据
你当前的问题是列表只存在程序运行时的内存中,程序关闭后内存被释放,新增的名字自然就丢失了。要实现下次运行还能看到,必须把数据保存到硬盘的文件里,下次启动时再从文件读取。下面给你两种适合新手的简单方案:
方案1:用普通文本文件存储
把每个名字存成文件的一行,读取时按行加载,写入时覆盖更新:
# 尝试读取已存储的名字,文件不存在则用初始列表 try: with open("names.txt", "r") as f: # 按行读取并去掉每行末尾的换行符 list_names = [line.strip() for line in f.readlines()] except FileNotFoundError: list_names = ["James", "John", "Sarah", "Tina"] print(list_names) add_name = input("Enter your name: ") # 可选:避免重复添加同名 if add_name not in list_names: list_names.append(add_name) # 将更新后的列表写入文件 with open("names.txt", "w") as f: for name in list_names: f.write(name + "\n") print(list_names)
方案2:用JSON文件存储(更适合结构化数据)
JSON可以直接存储列表、字典这类数据结构,读取和写入都很方便,适合以后扩展功能:
import json # 读取JSON文件中的列表 try: with open("names.json", "r") as f: list_names = json.load(f) except FileNotFoundError: list_names = ["James", "John", "Sarah", "Tina"] print(list_names) add_name = input("Enter your name: ") if add_name not in list_names: list_names.append(add_name) # 将列表转成JSON格式写入文件 with open("names.json", "w") as f: json.dump(list_names, f) print(list_names)
注意事项
- 两种方案的文件都会生成在你的Python程序同一个文件夹下
- 如果用JSON方案,不要手动修改
names.json的格式,否则会导致读取失败 - 加了
if add_name not in list_names判断是为了避免重复添加同一个名字,不需要的话可以删掉
内容的提问来源于stack exchange,提问作者olloshka
相关产品推荐
相关产品推荐

