详解Python3 pickle模块用法


Posted in Python onSeptember 16, 2019

pickle(python3.x)和cPickle(python2.x的模块)相当于java的序列化和反序列化操作。

常采用下面的方式使用:

import pickle
pickle.dump(obj,f)
pickle.dumps(obj,f)
pickle.load(f)
pickle.loads(f)

使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。 pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成读写独享操作,唯一需要的只是一个合法的文件句柄。

pickle模块中的两个主要函数是dump()和load():

dump()函数接受一个文件句柄和一个数据对象作为参数,把数据对象以特定的格式保存到给定的文件中。当我们使用load()函数从文件中取出已保存的对象时,pickle知道如何恢复这些对象到它们本来的格式。

dumps()函数执行和dump() 函数相同的序列化。取代接受流对象并将序列化后的数据保存到磁盘文件,这个函数简单的返回序列化的数据。

loads()函数执行和load() 函数一样的反序列化。取代接受一个流对象并去文件读取序列化后的数据,它接受包含序列化后的数据的str对象, 直接返回的对象。

示例:

# -*- coding:utf-8 -*-
import pickle
obj = 123, "abcdef", ["ac", 123], {"key": "value", "key1": "value1"}
print(obj)
# 序列化到文件
with open(r"F:\pycodes\ML\a.txt", "wb") as f:
 pickle.dump(obj, f)
with open(r"F:\\pycodes\\ML\\a.txt", "rb") as f:
 print(pickle.load(f))# 输出:(123, 'abcdef', ['ac', 123], {'key': 'value', 'key1': 'value1'})
# 序列化到内存(字符串格式保存),然后对象可以以任何方式处理如通过网络传输
obj1 = pickle.dumps(obj)
print(type(obj1))# 输出<class 'bytes'>
print(obj1)# 输出:python专用的存储格式 b'\x80\x03(K{X\x06\x00\x00\x00abcdefq\x00]q\x01(X\x02\x00\x00\x00acq\x02K{e}q\x03(X\x03\x00\x00\x00keyq\x04X\x05\x00\x00\x00valueq\x05X\x04\x00\x00\x00key1q\x06X\x06\x00\x00\x00value1q\x07utq\x08.'
obj2 = pickle.loads(obj1)
print(type(obj2))# 输出:<class 'tuple'>
print(obj2) # 输出:(123, 'abcdef', ['ac', 123], {'key': 'value', 'key1': 'value1'})

总结

以上所述是小编给大家介绍的Python3 pickle模块用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python实现简单状态框架的方法
Mar 19 Python
浅要分析Python程序与C程序的结合使用
Apr 07 Python
Python遍历指定文件及文件夹的方法
May 09 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
python线程、进程和协程详解
Jul 19 Python
Python爬取三国演义的实现方法
Sep 12 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
Selenium元素的常用操作方法分析
Aug 10 Python
Windows下PyCharm安装图文教程
Aug 27 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
Python单元和文档测试实例详解
Apr 11 Python
python文件及目录操作代码汇总
Jul 08 Python
python scipy卷积运算的实现方法
Sep 16 #Python
python 三元运算符使用解析
Sep 16 #Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 #Python
Python循环实现n的全排列功能
Sep 16 #Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 #Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 #Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 #Python
You might like
php设计模式  Command(命令模式)
2011/06/17 PHP
PHP 第一节 php简介
2012/04/28 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python概率计算器实例分析
2015/03/25 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python自动化操作实现图例绘制
2020/07/09 Python
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
学生实习证明范文
2014/09/28 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
mysql sock文件存储了什么信息
2022/07/15 MySQL