本文实例讲述了Python使用Pickle库实现读写序列操作。分享给大家供大家参考,具体如下:
简介
pickle模块实现了用于对Python对象结构进行序列化和反序列化的二进制协议。“Pickling"是将Python对象转换为字节流的过程,“unpickling"是反向操作,由此字节流二进制文件或字节对象)转换回对象结构。
模块方法
pickle.dump(obj, file, protocol=None, *, fix_imports=True)
将obj以二进制形式写入file-object文件
pickle.dumps(obj, protocol=None, *, fix_imports=True)
将obj编译为二进制对象
pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict")
dump的反向操作
pickle.loads(bytes_object, *, fix_imports=True, encoding="ASCII", errors="strict")
dumps的反向操作
pickle
而以二进制读取的一个妙用就是保存matplotlib的交互式图片页面:
保存交互式图片页面
1
2
3
4
5
6
7
8
9
|
import matplotlib.pyplot as plt
import pickle as pl
#调用matplotlib的figure对象
fig = plt.figure()
x = [ 1 , 2 , 3 , 4 , 5 ]
y = [ 1 , 2 , 3 , 4 , 5 ]
plt.plot(x,y)
#序列化figure对象,并保存
pl.dump(fig, open ( 'C:/Users/Administrator/Desktop/fig.pickle' , 'wb' ))
|
读取交互式页面:
1
2
3
4
5
6
7
|
import matplotlib.pyplot as plt
import pickle as pl
# 载入序列化文件
fig = pl.load( open ( 'C:/Users/Administrator/Desktop/fig.pickle' , 'rb' ))
plt.show()
# 获得图片信息
print (fig.axes[ 0 ].lines[ 0 ].get_data())
|
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/claroja/article/details/72726362