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 list中append()与extend()用法分享
Mar 24 Python
从零学Python之入门(五)缩进和选择
May 27 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
浅谈Python中的私有变量
Feb 28 Python
python文本数据相似度的度量
Mar 12 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
Django框架安装方法图文详解
Nov 04 Python
TensorFlow-gpu和opencv安装详细教程
Jun 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
一个简单的PHP入门源程序
2006/10/09 PHP
php防止sql注入代码实例
2013/12/18 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
PHP在线书签系统分享
2016/01/04 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
详解如何较好的使用js
2016/12/16 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Python 3.8 新功能全解
2019/07/25 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
国庆放假通知怎么写
2015/07/30 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL
Python保存并浏览用户的历史记录
2022/04/29 Python
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server