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之让人欢喜让人忧的迭代
Oct 02 Python
Python中decorator使用实例
Apr 14 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
python实现共轭梯度法
Jul 03 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
Python Collatz序列实现过程解析
Oct 12 Python
详解Python可视化神器Yellowbrick使用
Nov 11 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
Python API len函数操作过程解析
Mar 05 Python
详解python UDP 编程
Aug 24 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 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 显示指定路径下的图片
2009/10/29 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
php动态绑定变量的用法
2015/06/16 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Python循环语句之break与continue的用法
2015/10/14 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
Python os库常用操作代码汇总
2020/11/03 Python
在校硕士自我鉴定
2014/01/23 职场文书
小学数学课后反思
2014/04/23 职场文书
超市活动计划书
2014/04/24 职场文书
仲裁协议书
2014/09/26 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
面试通知短信
2015/04/20 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
Python源码解析之List
2021/05/21 Python
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android