python数据持久存储 pickle模块的基本使用方法解析


Posted in Python onAugust 30, 2019

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的闭包和装饰器
Feb 26 Python
python中类变量与成员变量的使用注意点总结
Apr 29 Python
python实现八大排序算法(2)
Sep 14 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
基于python实现百度翻译功能
May 09 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Python yield生成器和return对比代码实例
Apr 20 Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 Python
如何通过python检查文件是否被占用
Dec 18 Python
Python的scikit-image模块实例讲解
Dec 30 Python
python 命令行传入参数实现解析
Aug 30 #Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 #Python
python在OpenCV里实现投影变换效果
Aug 30 #Python
python 模拟贷款卡号生成规则过程解析
Aug 30 #Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 #Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 #Python
python获取Linux发行版名称
Aug 30 #Python
You might like
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python里disconnect UDP套接字的方法
2015/04/23 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
python 定时修改数据库的示例代码
2018/04/08 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
挖掘机司机岗位职责
2014/02/12 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
单身申明具结书
2015/02/26 职场文书
企业财务经理岗位职责
2015/04/08 职场文书