Python —— pickle序列化(大量数据提高python读写速度)(pkl文件)

       当大量数据的时候,保存成pkl序列化文件的格式,能够加快python的读写速度      

       pickle的功能就是把你上次计算得到的数据保存起来,当你需要使用这些数据时,直接通过load将数据进行恢复,这样的好处有:

  • 不需要重新去计算得到数据,节省计算机资源;
  • 可以更好的被内存调用,不需要经过数据格式的转换,提高效率;【直接保存为其他格式,如txt、csv的数据读写速度都不如序列化后的数据(字节流)】
  • pickle可以保存多个对象。实验中,同一数据集下需要保存的内容不止一种,通过pickle可以全部进行保存到一个.pkl文件。

import pickle 

a1="高淇"
a2=234
a3=[10,20,30,40]

with open("data.dat","wb")as f:
    pickle.dump(a1,f)
    pickle.dump(a2,f)
    pickle.dump(a3,f)

with open("data.dat","rb")as f:
    b1 = pickle.load(f)
    b2 = pickle.load(f)
    b3 = pickle.load(f)

'wb','rb'中的b是指以字节(二进制)方式读取文件中的数据

读取pkl文件

import pickle 

with open("results.pkl","rb")as f:
    b = pickle.load(f)
print(b)

 或

import mmcv

b = mmcv.load('/home/v-xixuanhao/py/mmdetection/work_dirs/Deformable_DETR-Crellov2/testing_output/results.pkl')
print(b)

如果是python2保存的pkl文件,那么python3读正常会不兼容,要这样

import pickle 
 
with open("neighborgraphs_training.pkl","rb")as f:
    b = pickle.load(f, encoding='latin1')
print(b)


 

也可以用torch来保存和读取pkl文件

d = {0:'a', 1:'b'}
torch.save(d, 'test.pkl')
x = torch.load('test.pkl')

但是torch保存的只能用torch读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值