pkl文件是什么?pickle.dump,pickle.load、为什么使用pkl文件、pickle

本文介绍了Python中的pickle模块,用于序列化和反序列化对象,以保存和加载数据。pkl文件是pickle序列化后的二进制文件,使用pickle.dump和pickle.load进行操作。pickle序列化后的文件占用空间小,读取速度快,适合大量数据存储。文章还强调了打开pkl文件时需要使用'rb'模式,并提供了示例代码演示了如何使用pickle进行序列化和反序列化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值