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中的两个重要概念:Openers和Handlers
Nov 05 Python
python操作sqlite的CRUD实例分析
May 08 Python
详解Python中的type()方法的使用
May 21 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
python3实现windows下同名进程监控
Jun 21 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
Python Django框架模板渲染功能示例
Nov 08 Python
python 创建一维的0向量实例
Dec 02 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
python使用ctypes库调用DLL动态链接库
Oct 22 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 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中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
js tab 选项卡
2009/04/26 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
Vue2几种常见开局方式详解
2017/09/09 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
常见python正则用法的简单实例
2016/06/21 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
python自动生成model文件过程详解
2019/11/02 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
材料化学应届生求职信
2013/10/09 职场文书
小学教师师德反思
2014/02/03 职场文书
节约电力资源的建议书
2014/03/12 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
植树节新闻稿
2015/07/17 职场文书
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers