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中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
python中format()函数的简单使用教程
Mar 14 Python
python仿evething的文件搜索器实例代码
May 13 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
python设置环境变量的作用和实例
Jul 09 Python
Python reversed函数及使用方法解析
Mar 17 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
python opencv通过4坐标剪裁图片
Jun 05 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
php中文验证码实现示例分享
2014/01/12 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
php查询whois信息的方法
2015/06/08 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
让textarea自动调整大小的js代码
2011/04/12 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
python实现代理服务功能实例
2013/11/15 Python
python3.3实现乘法表示例
2014/02/07 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python实现多进程的四种方式
2019/02/22 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
销售员岗位职责范本
2014/02/03 职场文书
进口业务员岗位职责
2014/04/06 职场文书
活动总结报告怎么写
2014/07/03 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
导游词欢迎词
2015/02/02 职场文书
展览会邀请函
2015/02/02 职场文书
党员转正介绍人意见
2015/06/03 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书