Python存储数据

Ben*_*ley 13 python storage

我的程序中有一个列表.我有一个附加到列表的功能,不幸的是当你关闭程序时,你添加的东西消失了,列表又回到了开头.有没有什么方法可以存储数据,以便用户可以重新打开程序,列表已满.

lqh*_*gbl 10

你可以尝试pickle模块将内存数据存储到磁盘中,这是一个例子:

存储数据:

import pickle
dataset = ['hello','test']
outputFile = 'test.data'
fw = open(outputFile, 'wb')
pickle.dump(dataset, fw)
fw.close()
Run Code Online (Sandbox Code Playgroud)

加载数据:

import pickle
inputFile = 'test.data'
fd = open(inputFile, 'rb')
dataset = pickle.load(fd)
print dataset
Run Code Online (Sandbox Code Playgroud)


GLH*_*LHF 9

您可以创建一个数据库并保存它们,唯一的方法就是这样.具有SQLITE或.txt文件的数据库.例如:

with open("mylist.txt","w") as f: #in write mode
    f.write("{}".format(mylist))
Run Code Online (Sandbox Code Playgroud)

你的清单进入了这个format()功能.它将生成一个名为.txt的文件mylist,并将列表数据保存到其中.

之后,当您想再次访问数据时,您可以执行以下操作:

with open("mylist.txt") as f: #in read mode, not in write mode, careful
    rd=f.readlines()
print (rd)
Run Code Online (Sandbox Code Playgroud)


gra*_*irt 5

内置pickle模块提供了一些基本的序列化功能,序列化是一个术语,用于将任意对象转换为适合写入磁盘的对象。查看Python 2Python 3的文档。

不过,Pickle 并不是很健壮,对于更复杂的数据,您可能需要研究内置数据库模块sqlite3或像 SQLAlchemy 这样成熟的对象关系映射(ORM)。