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 Web开发模板引擎优缺点总结
May 06 Python
python实现域名系统(DNS)正向查询的方法
Apr 19 Python
python实现下载pop3邮件保存到本地
Jun 19 Python
python进行TCP端口扫描的实现
Dec 21 Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 Python
Django实现学员管理系统
Feb 26 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
python的slice notation的特殊用法详解
Dec 27 Python
python实现自动清理重复文件
Aug 24 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
python元组打包和解包过程详解
Aug 02 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
德劲1107的电路分析与打磨
2021/03/02 无线电
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
Python unittest单元测试框架总结
2018/09/08 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
详解Python sys.argv使用方法
2019/05/10 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
Numpy数组的广播机制的实现
2020/11/03 Python
python实现猜拳游戏项目
2020/11/30 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
开展批评与自我批评心得体会
2014/10/17 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js