Python中的pickle模块解析
pickle模块简介
pickle 模块和 json 模块很像,都有序列化的功能,不过 pickle 模块更加局限一些只能对 python 使用,它可以对一个 python 对象结构的 二进制 序列化和反序列化。
序列化是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程。反序列化则反之。
pickle模块语法
pickle.dumps
将 python 对象作为 bytes 类型直接返回
import pickle class MyCls(object): pass x = pickle.dumps(MyCls) print(x)
打印结果
b'\x80\x04\x95\x16\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x05MyCls\x94\x93\x94.'
示例中将一个类的结构序列化成了字节串
pickle.dump
和 json.dump 一样也是写入文件的
import pickle class MyCls(object): pass with open('obj', 'wb')as f: pickle.dump(MyCls, f)
pickle.loads
将字节流返回成一个对象的原本的结构形式
import pickle class MyCls(object): name = 'x' x = pickle.dumps(MyCls) # print(x) y = pickle.loads(x) print(y) print(y.name)
打印结果
<class '__main__.MyCls'>
x
返回出来的是原本对象的结构,所以原本使用的方法都不变
pickle.load
将文件中的字节串反序列化
import pickle class MyCls(object): name = 'x' with open('obj', 'wb')as e: pickle.dump(MyCls, e) with open('obj', 'rb')as f: x = pickle.load(f) print(x.name)
到此这篇关于Python中的pickle模块解析的文章就介绍到这了,更多相关pickle模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python 过滤字符串的技巧,map与itertools.imap
Python中的map函数非常有用,在字符转换和字符遍历两节都出现过,现在,它又出现了,会给我们带来什么样的惊喜呢?是不是要告诉我们,map是非常棒的,以后要多找它玩呢?2008-09-09pybaobabdt库基于python的决策树随机森林可视化工具使用
这篇文章主要为大家介绍了pybaobabdt库基于python的决策树随机森林可视化工具使用探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2024-02-02
最新评论