对实例1做了下修改:
1.将文件改为追加写入的方式
2.末尾增加了基于while循环的load,把写入的打印出来查看,用循环是因为发现pickle.load(f)每次运行只能读取一行
import pickle
# 使用pickle模块将数据对象保存到文件
data1 ={'a':[1,2.0,3,4+6j],
'b':('string', u'Unicode string'),
'c':None}
selfref_list =[1,2,3]
selfref_list.append(selfref_list)
output = open('data2.pkl','ab') #修改为追加写入
# Pickle dictionary using protocol 0.
pickle.dump(data1, output)
# Pickle the list using the highest protocol available.
pickle.dump(selfref_list, output,-1)
output.close()
#循环读取直至最后一行
with open('data2.pkl','rb')as f:
whileTrue:
try:
print(pickle.load(f))
exceptEOFError:
f.close()
break