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装饰器
Sep 29 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
详解python3中的真值测试
Aug 13 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
Python 3 使用Pillow生成漂亮的分形树图片
Dec 24 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
python烟花效果的代码实例
Feb 25 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Python pandas对excel的操作实现示例
Jul 21 Python
python 批量将中文名转换为拼音
Feb 07 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
用PHP实现ODBC数据分页显示一例
2006/10/09 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
JavaScript 事件系统
2010/07/22 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python元组操作实例解析
2014/09/23 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
python简单实现基数排序算法
2015/05/16 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
Python多线程的退出控制实现
2020/08/10 Python
python中reload重载实例用法
2020/12/15 Python
单位人事专员介绍信
2014/01/11 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
蓝颜请假条
2014/04/11 职场文书
主题实践活动总结
2014/05/08 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers