Python标准库05学习笔记--存储对象 (pickle包,cPickle包)
2018-01-16 20:19
771 查看
作者:Vamei 出处:http://www.cnblogs.com/vamei
输出:
b’\x80\x03c__main__\nBird\nq\x00)\x81q\x01.’
使用pickle.dumps()方法可以将对象summer转换成了字符串 picklestring(也就是文本流)。随后我们可以用普通文本的存储方法来将该字符串储存在文件(文本文件的输入输出)。
当然,我们也可以使用pickle.dump()的方法,将上面两部合二为一:
test.txt中信息为:
8003 635f 5f6d 6169 6e5f 5f0a 4269 7264
0a71 0029 8171 012e
2)重建对象
首先,我们要从文本中读出文本,存储到字符串 (文本文件的输入输出)。然后使用pickle.loads(str)的方法,将字符串转换成为对象。要记得,此时我们的程序中必须已经有了该对象的类定义。
输出:
<__main__.Bird object at 0x00000270EFE3AD30>
True
就不需要再做任何改动了。
存储对象 (pickle包,cPickle包)
pickle包
1)将内存中对象转换为文本流–pickle.dumps()import pickle class Bird(object): have_feather=True way_of_reproduction='egg' summer=Bird() picklestring=pickle.dumps(summer) print(picklestring)
输出:
b’\x80\x03c__main__\nBird\nq\x00)\x81q\x01.’
使用pickle.dumps()方法可以将对象summer转换成了字符串 picklestring(也就是文本流)。随后我们可以用普通文本的存储方法来将该字符串储存在文件(文本文件的输入输出)。
当然,我们也可以使用pickle.dump()的方法,将上面两部合二为一:
with open('test.txt','wb') as f: #python3.x中要写'wb',写'w'会报错 picklestring=pickle.dump(summer,f)#将summer以文本流的形式写入test.txt
test.txt中信息为:
8003 635f 5f6d 6169 6e5f 5f0a 4269 7264
0a71 0029 8171 012e
2)重建对象
首先,我们要从文本中读出文本,存储到字符串 (文本文件的输入输出)。然后使用pickle.loads(str)的方法,将字符串转换成为对象。要记得,此时我们的程序中必须已经有了该对象的类定义。
with open('test.txt','rb') as f: #python3.x中要写'rb',写'r'会报错 resummer=pickle.load(f) print(resummer) print(resummer.have_feather)
输出:
<__main__.Bird object at 0x00000270EFE3AD30>
True
cPickle包
cPickle包的功能和用法与pickle包几乎完全相同 (其存在差别的地方实际上很少用到),不同在于cPickle是基于c语言编写的,速度是pickle包的1000倍。对于上面的例子,如果想使用cPickle包,我们都可以将import语句改为:import cPickle as pickle
就不需要再做任何改动了。
相关文章推荐
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python3学习笔记10-标准库之正则、时间、路径、文件管理、存储对象
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python学习笔记12:标准库之对象序列化(pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python学习笔记12:标准库之对象序列化(pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python标准库05 存储对象 (pickle包,cPickle包)
- Python --标准库 存储对象 (pickle包,cPickle包)
- Python标准库存储对象(pickle包,cPickle包)
- pickle存储数据-读取数据-入门---python学习笔记25