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操作CouchDB数据库简单示例
Mar 10 Python
如何实现删除numpy.array中的行或列
May 08 Python
在Python中增加和插入元素的示例
Nov 01 Python
Python编程flask使用页面模版的方法
Dec 28 Python
python3.6数独问题的解决
Jan 21 Python
Django学习笔记之为Model添加Action
Apr 30 Python
python 判断三个数字中的最大值实例代码
Jul 24 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python decorator拦截器代码实例解析
Apr 04 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 Python
pycharm永久激活超详细教程
Oct 29 Python
如何用用Python将地址标记在地图上
Feb 07 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
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
Jquery中attr与prop的区别详解
2017/05/27 jQuery
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
python实现下载指定网址所有图片的方法
2015/08/08 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Python input函数使用实例解析
2019/11/22 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
python文件编写好后如何实践
2020/07/07 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
年终自我鉴定
2013/10/09 职场文书
高考备战决心书
2014/03/11 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
2015年实习单位评语
2015/03/25 职场文书