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生成随机密码的方法
Jun 16 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
Python中print函数简单使用总结
Aug 05 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
Python3常用内置方法代码实例
Nov 18 Python
基于Python中的yield表达式介绍
Nov 19 Python
Python实现中值滤波去噪方式
Dec 18 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
python中编写函数并调用的知识点总结
Jan 13 Python
python爬取抖音视频的实例分析
Jan 19 Python
教你如何使用Python实现二叉树结构及三种遍历
Jun 18 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在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
jquery easyui validatebox remote的使用详解
2016/11/09 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
python生成带有表格的图片实例
2019/02/03 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
给海归自荐信的建议
2013/12/13 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
数学检讨书1000字
2014/02/24 职场文书
前处理组长岗位职责
2014/03/01 职场文书
党性心得体会
2014/09/03 职场文书
会议接待欢迎标语
2014/10/08 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
社区党建工作总结2015
2015/05/13 职场文书
新年晚会开场白
2015/05/29 职场文书
如何写观后感
2015/06/19 职场文书
谢师宴家长致辞
2015/07/27 职场文书
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫