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中线程问题的简单讲解
Apr 03 Python
在Python的Django框架中包装视图函数
Jul 20 Python
python pandas 如何替换某列的一个值
Jun 09 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
一文读懂python Scrapy爬虫框架
Feb 24 Python
python单向链表实例详解
May 25 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
什么是短波收听SWL
2021/03/01 无线电
php实现简单的MVC框架实例
2015/09/23 PHP
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
vue-cli3 热更新配置操作
2020/09/18 Javascript
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
Python类的专用方法实例分析
2015/01/09 Python
python实现用户管理系统
2018/01/10 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
如何利用Python写个坦克大战
2020/11/18 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
.NET remoting中对象激活的两种方式
2015/06/08 面试题
法律专业推荐信范文
2013/11/29 职场文书
大四学生思想汇报
2014/01/13 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
员工培训协议书
2014/09/15 职场文书
走群众路线剖析材料
2014/10/09 职场文书
2015年安全月活动总结
2015/03/26 职场文书
高质量“欢迎词”
2019/04/03 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
最新最全的手机号验证正则表达式
2022/02/24 Javascript
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis