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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:06:24