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编程pygame模块实现移动的小车示例代码
Jan 03 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
jupyter notebook清除输出方式
Apr 10 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
python基础入门之普通操作与函数(三)
Jun 13 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
MVC模式的PHP实现
2006/10/09 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
Python中的集合类型知识讲解
2015/08/19 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
Python变量类型知识点总结
2019/02/18 Python
python pandas 时间日期的处理实现
2019/07/30 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Python中的Cookie模块如何使用
2020/06/04 Python
django下创建多个app并设置urls方法
2020/08/02 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
软件测试笔试题
2012/10/25 面试题
七年级英语教学反思
2014/01/15 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
拉贝日记观后感
2015/06/05 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python