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爬虫之urllib2使用指南
Nov 05 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
pandas DataFrame创建方法的方式
Aug 02 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
Aug 09 Python
python根据时间获取周数代码实例
Sep 30 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
Dec 13 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
Python如何实现机器人聊天
Sep 10 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 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脚本的10个技巧(6)
2006/10/09 PHP
php 数组使用详解 推荐
2011/06/02 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
PHP守护进程实例
2015/03/06 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
Python numpy 点数组去重的实例
2018/04/18 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
python中np是做什么的
2020/07/21 Python
重构Python代码的六个实例
2020/11/25 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
2014年医学生毕业自我鉴定
2014/03/26 职场文书
遗嘱继承公证书
2014/04/09 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
银行进社区活动总结
2014/07/07 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记
Linux中如何安装并部署Redis
2022/04/18 Servers
MySQL主从切换的超详细步骤
2022/06/28 MySQL