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版
Dec 07 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
详解python的ORM中Pony用法
Feb 09 Python
python生成九宫格图片
Nov 19 Python
python实现桌面壁纸切换功能
Jan 21 Python
python实现祝福弹窗效果
Apr 07 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
Django框架反向解析操作详解
Nov 28 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 Python
如何在python中判断变量的类型
Jul 29 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
AM/FM收音机的安装与调试
2021/03/02 无线电
php中去除所有js,html,css代码
2010/10/12 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
快速入门Vue
2016/12/19 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
pycharm远程调试openstack代码
2017/11/21 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
pytorch 共享参数的示例
2019/08/17 Python
详解python中的闭包
2020/09/07 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
python中time包实例详解
2021/02/02 Python
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
产品发布会策划方案
2014/05/12 职场文书
色戒观后感
2015/06/12 职场文书
宝宝满月祝酒词
2015/08/10 职场文书