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发送HTTP请求的方法小结
Jul 08 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
神经网络理论基础及Python实现详解
Dec 15 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
Python及Pycharm安装方法图文教程
Aug 05 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
Aug 05 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
Django项目创建到启动详解(最全最详细)
Sep 07 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 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介绍篇
2010/10/26 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
js模块加载方式浅析
2017/08/12 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
python比较2个xml内容的方法
2015/05/11 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
python实现K最近邻算法
2018/01/29 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python 随机森林算法及其优化详解
2019/07/11 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
后勤自我鉴定
2013/10/13 职场文书
口头翻译求职人自荐信
2013/12/07 职场文书
办公室经理岗位职责
2014/01/01 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
市场策划求职信
2014/08/07 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
酒店辞职书范文
2015/02/26 职场文书
学校党支部公开承诺书
2015/04/30 职场文书