Python脚本实现列表数据永久存储的问题求助
解决列表数据持久化问题
要让列表数据在脚本重启后不丢失,核心是把内存中的数据持久化到磁盘文件里。这里用JSON格式存储是最方便的方案——它能直接和Python列表互转,读写代码简单易懂。
修改a_file.py
把原来的空列表定义改成从文件加载历史数据,并添加保存数据的函数:
import json import os # 存储数据的文件,默认和脚本在同一目录 DATA_FILE = "list_data.json" def load_list(): # 若文件存在则读取数据,不存在则返回空列表 if os.path.exists(DATA_FILE): with open(DATA_FILE, 'r', encoding='utf-8') as f: return json.load(f) return [] def save_list(data): # 将当前列表写入JSON文件 with open(DATA_FILE, 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=2) # 初始化列表:从磁盘加载历史数据 a_list = load_list()
修改main.py
导入保存函数,每次修改列表后立即保存数据,退出时也做一次兜底保存:
from a_file import a_list, save_list while True: user_input = input("输入内容('showlist'查看列表,'exit'退出程序):") if user_input == 'showlist': print(a_list) elif user_input == 'exit': save_list(a_list) print("数据已保存,程序退出") break else: a_list.append(user_input) save_list(a_list) print(f"已添加内容:{user_input}")
关键逻辑说明
- 脚本启动时,
load_list()会读取磁盘上的JSON文件,把之前保存的列表数据加载到内存中的a_list,所以重启后能看到历史内容。 - 每次添加新内容或退出时,
save_list()会把当前a_list的完整内容写入文件,确保所有修改都能持久化到磁盘。 - JSON是纯文本格式,你可以直接打开
list_data.json查看或手动修改数据(注意保持JSON格式正确)。
内容的提问来源于stack exchange,提问作者Ninjaprogrammer
相关产品推荐
相关产品推荐

