【发布时间】:2021-03-12 20:43:40
【问题描述】:
我的程序中有一个列表。我有一个附加到列表的功能,不幸的是,当你关闭程序时,你添加的东西消失了,列表又回到了开头。有什么方法可以存储数据,以便用户可以重新打开程序并且列表已满。
我的程序中有一个列表。我有一个附加到列表的功能,不幸的是,当你关闭程序时,你添加的东西消失了,列表又回到了开头。有什么方法可以存储数据,以便用户可以重新打开程序并且列表已满。
您可以尝试pickle 模块将内存数据存储到磁盘中,这是一个示例:
存储数据:
import pickle
dataset = ['hello','test']
outputFile = 'test.data'
fw = open(outputFile, 'wb')
pickle.dump(dataset, fw)
fw.close()
加载数据:
import pickle
inputFile = 'test.data'
fd = open(inputFile, 'rb')
dataset = pickle.load(fd)
print dataset
【讨论】:
pickle.dump() 和.load() 调用正常工作,在您的open() 调用中,您可能需要分别传递"wb" 和"rb" 标志。 More info in this SO answer。
您可以创建一个数据库并保存它们,唯一的方法就是这样。带有 SQLITE 或 .txt 文件的数据库。例如:
with open("mylist.txt","w") as f: #in write mode
f.write("{}".format(mylist))
您的列表进入format() 函数。它会生成一个名为mylist 的.txt 文件,并将您的列表数据保存到其中。
之后,当您想再次访问您的数据时,您可以执行以下操作:
with open("mylist.txt") as f: #in read mode, not in write mode, careful
rd=f.readlines()
print (rd)
【讨论】:
对于存储大数据,HDF5 库是合适的。它由 Python 中的h5py 实现。
【讨论】: