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在windows下实现备份程序实例
Jul 04 Python
python文件读写操作与linux shell变量命令交互执行的方法
Jan 14 Python
python中while循环语句用法简单实例
May 07 Python
Python2随机数列生成器简单实例
Sep 04 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Python实现的计算器功能示例
Apr 26 Python
Python实现最大子序和的方法示例
Jul 05 Python
将Python文件打包成.EXE可执行文件的方法
Aug 11 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
python爬虫用mongodb的理由
Jul 28 Python
如何在Python中妥善使用进度条详解
Apr 05 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
JS实现php的伪分页
2008/05/25 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
jQuery 对象中的类数组操作
2009/04/27 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
学校读书活动总结
2014/06/30 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
maven依赖的version声明控制方式
2022/01/18 Java/Android
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL