1、安装 pickle
要使用pkl文件首先需要:
pip install pickle
然后就可以通过pickle.dump,pickle.load实现序列化和反序列化完成这些操作
2、pkl文件是什么?
pkl 格式的文件是 python 用于保存文件用的。
博主之前呢也踩了个小坑呢,就是在打开文件的时候用的是 r,r 是用来打开文本类型文件的,我要打开的是二进制类型的文件,需要用 rb。因为文件呢主要分为这两种文本类型的和二进制类型。你在用的时候要看打开的文件是什么类型的,别用错了!
# cPickle是python2系列用的,3系列已经不用了,直接用pickle就好了
import pickle
# 重点是rb和r的区别,rb是打开2进制文件,文本文件用r
f = open('itchat.pkl','rb')
data = pickle.load(f)
print(data)
3、为什么要使用pickle?
pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。
python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,pickle序列化后的数据,可读性差,人一般无法识别。
1. 文件大小
转换后的文件占用磁盘空间最小,比原文件小4倍,对于保存大量数据非常有用。
2. 文件读取速度
转换后的读取速度比普通csv文件的读取速度快42倍。
3. 占用内存大小
转换后占用内存比转换前小30倍。
注:读取的数据都是一样的,就是数据类型不一样。
4、pickle.dump,pickle.load关系
python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
基本接口:
pickle.dump(obj, file, [,protocol])
注解:将对象obj保存到文件file中去。
pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
file:类文件对象,有read()和readline()接口。
举例说明:
dic={'a':'apple','b':'banana','g':'grape','o':'orange'}
dic1={'c':'cpple','b':'banana','h':'hrape','o':'orange'}
# 将多个字典融为一个
dic_all = {**dic, **dic1}
import pickle
# 序列化
pickle.dump(dic_all, open("dict.pkl", 'wb'))
# 反序列化
deserialization = pickle.load(open("dict.pkl", 'rb'))
print(deserialization)
原文链接:https://blog.csdn.net/weixin_38278334/article/details/82967813