Python序列化与反序列化pickle用法实例


Posted in Python onNovember 11, 2019

这篇文章主要介绍了Python序列化与反序列化pickle用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

要将Python对象作为一个文件的形式保存到磁盘,就叫序列化;

当我们需要用到这个这对象,再从磁盘加载这个对象,就叫反序列化

Python自带的pickle可以帮我们实现,pickle这个单词是咸菜的意思,咸菜耐储存,是不是很形象呀?

对象的存储分为两步:

1.将对象在内存中的数据抓取取来,转换成一个有序的文本,这一步就是序列化

2.再将文本存储到磁盘中

代码如下

import pickle
class Bird(object):
	have_feather = True
reproduction_method = "egg"#
# 创建一个对象
summer = Bird()
pickle_string = pickle.dumps(summer)# 已被序列化成二进制数据
with open("summer.pkl", "wb") as fp:
	fp.write(pickle_string)
# dump方法可以把上面两步作为一步来完成:# with open(
	"summer.pkl", "wb") as fp: #pickle.dump(
	summer, fp)
# 从磁盘文件上恢复对象: 先读取文件, 再loads
with open("summer.pkl", "rb") as fp:
	summer = fp.read()# 先读取
summer = pickle.loads(summer)# 再序列化
print(summer.have_feather)# 或者用load方法, 一步到位# with open(
		"summer.pkl", "rb") as fp: #summer =
	pickle.load(fp)# print(summer.have_feather)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python深入学习之上下文管理器
Aug 31 Python
Python实现处理管道的方法
Jun 04 Python
Python使用redis pool的一种单例实现方式
Apr 16 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
Python之str操作方法(详解)
Jun 19 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
Python rstrip()方法实例详解
Nov 11 Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 Python
详解Python可视化神器Yellowbrick使用
Nov 11 #Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 #Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 #Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 #Python
Python多继承以及MRO顺序的使用
Nov 11 #Python
python 有效的括号的实现代码示例
Nov 11 #Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 #Python
You might like
PHP5 安装方法
2007/01/15 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
Python3多线程爬虫实例讲解代码
2018/01/05 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
python中open函数的基本用法示例
2019/09/07 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
C面试题
2015/10/08 面试题
艺术设计专业个人求职信
2013/09/21 职场文书
大学生先进事迹材料
2014/02/16 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
Java中的继承、多态以及封装
2022/04/11 Java/Android
Python面试不修改数组找出重复的数字
2022/05/20 Python