什么是序列化?
序列化是指把变量值存在文件里保存,再从文件里取出来(反序列化)的过程。
为什么要序列化呢?
因为我们平时写的程序中的变量都是存在内存中,一旦程序结束,变量所占用的内存就会被操作系统回收,序列化就是把这些需要的变量变成可存储的过程。
通过pickle.dump()实现序列化,pickle.load()实现反序列化
序列化一个变量:
import pickle as p
#将变量存储到shoplist.data文件中
shoplistfile = 'd:\\shoplist.data'
shoplist = ['apple', 'mango', 'carrot']
#以二进制形式将变量写入文件中
f = open(shoplistfile, 'wb')
p.dump(shoplist, f)
f.close()
#删掉这个变量
del shoplist
#从存储的文件中读取变量
f = open(shoplistfile,'rb')
storedlist = p.load(f)
print ('从文件读取的列表对象:',storedlist)
序列化多个变量
import pickle as p
shoplistfile = 'd:\\shoplist.data'
shoplist1 = ['apple', 'mango', 'carrot']
shoplist2 = ['cat','dog','monkey']
f = open(shoplistfile, 'wb')
p.dump(shoplist1, f)
p.dump(shoplist2, f)
f.close()
del shoplist1
del shoplist2
f = open(shoplistfile,'rb')
storedlist1 = p.load(f)
storedlist2 = p.load(f)
print ('从文件读取的列表对象1:',storedlist1)
print ('从文件读取的列表对象2:',storedlist2)