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 相关文章推荐
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
浅谈function(函数)中的动态参数
Apr 30 Python
Python iter()函数用法实例分析
Mar 17 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
Python中有几个关键字
Jun 04 Python
python中altair可视化库实例用法
Jan 26 Python
Python 中Operator模块的使用
Jan 30 Python
Python+Appium实现自动化清理微信僵尸好友的方法
Feb 04 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
Python 转义字符详细介绍
2017/03/21 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
销售部主管岗位职责
2013/12/18 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
大二学生自我检讨书
2014/10/23 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
致运动员的广播稿
2015/08/19 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js