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批量同步web服务器代码核心程序
Sep 01 Python
使用Python压缩和解压缩zip文件的教程
May 06 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
Jan 16 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
关于PyTorch 自动求导机制详解
Aug 18 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
Python如何将装饰器定义为类
Jul 30 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
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
Javascript操作cookie的函数代码
2012/10/03 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
Python判断Abundant Number的方法
2015/06/15 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Python数学形态学实例分析
2019/09/06 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
.NET常见笔试题集
2012/12/01 面试题
2014年两会学习心得体会
2014/03/17 职场文书
群众路线党课主持词
2014/04/01 职场文书
历史学专业求职信
2014/06/19 职场文书
给校长的一封检讨书
2014/09/20 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
五一放假通知怎么写
2015/08/18 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
CentOS安装Nginx并部署vue
2022/04/12 Servers
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS