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自动安装pip
Apr 24 Python
详解Django中的form库的使用
Jul 18 Python
python日志记录模块实例及改进
Feb 12 Python
简单实现python数独游戏
Mar 30 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
解决python Markdown模块乱码的问题
Feb 14 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
python获取百度热榜链接的实例方法
Aug 25 Python
Python破解极验滑动验证码详细步骤
May 21 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
聊天室php&mysql(二)
2006/10/09 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
大学生求职自荐信
2013/12/12 职场文书
创意活动策划书
2014/01/15 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
安全横幅标语
2014/06/09 职场文书
要账委托书范本
2014/09/15 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
教师节寄语2015
2015/03/23 职场文书