要了解pickle模块首先要理解两个概念:序列化和反序列化
序列化:把python的对象编码转换为pickle格式的字符串
反序列化:把pickle格式字符串解码为python数据对象
序列化的操作
序列化的方法: pickle.dump()
格式为:pickle.dump(obj, file)
注:该方法是将序列化后的对象obj以二进制形式写入文件file中,进行保存,不能直接预览。
反序列化的操作
序列化的方法: pickle.load()
格式为:pickle.load(obj, file)
利用下面一段代码理解一下pickle模块:
import pickle
import random
#首先进行反序列化操作
try:
with open ('cjb.txt','rb') as f:
cjb = pickle.load(f)
print(cjb)
except:
cjb = []
for i in range(5):
name = input('请输入名字:')
cj=random.randint(50,100)
cjb.append([name,cj])
#序列化
with open('cjb.txt','wb')as f:
pickle.dump(cjb,f)
print("结果已保存")
要注意呀,千万不可以用pickle命名,否则会报错!
如下:
module 'pickle' has no attribute 'dump'
好啦,就酱紫!