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 相关文章推荐
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
Python 3中的yield from语法详解
Jan 18 Python
Python中动态创建类实例的方法
Mar 24 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
Python程序员面试题 你必须提前准备!
Jan 16 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
python操作文件的参数整理
Jun 11 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
python实现PDF中表格转化为Excel的方法
Jun 16 Python
python matplotlib库的基本使用
Sep 23 Python
python工具——Mimesis的简单使用教程
Jan 16 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模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
js的表单操作 简单计算器
2011/12/29 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
Python装饰器用法实例总结
2018/02/07 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
python实现简易动态时钟
2018/11/19 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
线程同步的方法
2016/11/23 面试题
银行授权委托书样本
2014/10/13 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
个人欠条范本
2015/07/03 职场文书