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使用sorted函数对列表进行排序的方法
Apr 04 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
使用python 3实现发送邮件功能
Jun 15 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
python hook监听事件详解
Oct 25 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
使用python3构建文件传输的方法
Feb 13 Python
Python Django 添加首页尾页上一页下一页代码实例
Aug 21 Python
python实现批量文件重命名
Oct 31 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
如何理解Python中的变量
Jun 01 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 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中调用ASP.NET的WebService的代码
2011/04/22 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
2016/06/24 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
Python3远程监控程序的实现方法
2019/07/15 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
教学改革问题查摆整改措施
2014/09/27 职场文书
大学生自荐信范文
2015/03/05 职场文书
求职信格式范文
2015/03/19 职场文书
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS