对于.pkl文件,我是在接触 SMPL模型的时候用到的。SMPL的开源项目包里,有model文件夹,打开有两个.pkl文件。然后,找到了一个说的相对比较详细的网址。https://jingyan.baidu.com/article/59a015e36ef251f794886598.html

  一、我对pkl文件的理解为:

  1)python中有一种存储方式,可以存储为.pkl文件。

  2)该存储方式,可以将python项目过程中用到的一些暂时变量、或者需要提取、暂存的字符串、列表、字典等数据保存起来。

  3)保存方式就是保存到创建的.pkl文件里面。

  4)然后需要使用的时候再 open,load。

  二、代码的话。

# 1)串行化要存储的对象
import pprint
import cPickle as pickle

info = [.....一堆东西....] # info是一个list

data1 = pickle.dumps(info)
data2 = pickle.loads(data1)


# 2)使用pickle模块存储对象
import pickle

data1 = {.........一堆东西........} # data1是一个字典

selfref_list = [1, 2, 3]

output = open('data.pkl', 'wb')

# Pickle dictionary using protocol 0.
pickle.dump(data1, output)

# Pickle the list using the highest protocol available.
pickle.dump(selfref_list, output, -1)

output.close()

# 3)读取,并使用
import pprint, pickle

pkl_file = open('data.pkl', 'rb')

data1 = pickle.load(pke_file)
pprint.pprint(data1)

data2  = pickle.load(pkl_file)
pprint.pprint(data2)

pkl_file.close()
01-21 06:25