Python pickle模块用法实例


Posted in Python onApril 14, 2015

python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

基本接口:

pickle.dump(obj, file, [,protocol])

注解:将对象obj保存到文件file中去。

protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。

file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以'w'方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。

pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
file:类文件对象,有read()和readline()接口。

A Simple Code

#使用pickle模块将数据对象保存到文件  import 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('data.pkl', 'wb') # 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()

 
#使用pickle模块从文件中重构python对象  import pprint, pickle
pkl_file = open('data.pkl', 'rb')
data1 = pickle.load(pkl_file)

pprint.pprint(data1)
data2 = pickle.load(pkl_file)

pprint.pprint(data2)
pkl_file.close()
Python 相关文章推荐
在Python程序中实现分布式进程的教程
Apr 28 Python
Python中的choice()方法使用详解
May 15 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
用Python实现BP神经网络(附代码)
Jul 10 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Python异常模块traceback用法实例分析
Oct 22 Python
python中sympy库求常微分方程的用法
Apr 28 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
python实现b站直播自动发送弹幕功能
Feb 20 Python
使用Python的PEAK来适配协议的教程
Apr 14 #Python
Python全局变量操作详解
Apr 14 #Python
Python and、or以及and-or语法总结
Apr 14 #Python
Python线程的两种编程方式
Apr 14 #Python
Python中的测试模块unittest和doctest的使用教程
Apr 14 #Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 #Python
对于Python编程中一些重用与缩减的建议
Apr 14 #Python
You might like
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
Python实现list反转实例汇总
2014/11/11 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python中 map()函数的用法详解
2018/07/10 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
通过实例了解python property属性
2019/11/01 Python
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
简单说下OSPF的操作过程
2014/08/13 面试题
护理专业推荐信
2013/11/07 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
三八妇女节标语
2014/10/09 职场文书
技术支持岗位职责
2015/02/13 职场文书
幼师个人总结范文
2015/02/28 职场文书
公司档案管理制度
2015/08/05 职场文书
晚会开幕词范文
2016/03/04 职场文书