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 随机数生成的代码的详细分析
May 15 Python
Python中subprocess的简单使用示例
Jul 28 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
Python常用模块之requests模块用法分析
May 15 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
深入了解Django View(视图系统)
Jul 23 Python
python多线程实现TCP服务端
Sep 03 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
python实现贪吃蛇游戏源码
Mar 21 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
Sep 28 Python
Python中的变量与常量
Nov 11 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检测iis环境是否支持htaccess的方法
2014/02/18 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
python多进程读图提取特征存npy
2019/05/21 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
opencv+python实现均值滤波
2020/02/19 Python
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
上级检查欢迎词
2014/01/18 职场文书
公司营业员的自我评价
2014/03/04 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
简单通用的简历自我评价
2014/09/21 职场文书
个人存款证明书
2014/10/18 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
python中tkinter复选框使用操作
2021/11/11 Python
PHP正则表达式之RCEService回溯
2022/04/11 PHP