1. show_pkl.py:

#show_pkl.py

import pickle
path='aus_openface.pkl'   #path='/root/……/aus_openface.pkl'   pkl文件所在路径
	   
f=open(path,'rb')
data=pickle.load(f)

print(data)
print(len(data))

#输出结果:
{'N_0000000356_00190': array([2.86, 2.27, 1.45, 1.1 , 0.  , 0.65, 0.05, 0.  , 0.75, 1.65, 0.6 , 0.  , 1.86, 0.  , 0.62, 0.25, 0.  ]),
 'N_0000001939_00054': array([0.34, 2.09, 0.  , 2.04, 0.02, 0.  , 0.  , 1.22, 0.  , 0.93, 0.37, 0.  , 0.4 , 0.  , 0.  , 0.22, 0.  ]),
 'N_0000000437_00540': array([0.  , 0.19, 0.02, 0.8 , 0.24, 1.46, 1.18, 0.37, 0.  , 0.  , 1.13, 3.37, 1.24, 0.73, 0.13, 1.83, 0.  ]),
 'N_0000001507_00202': array([1.08, 1.23, 0.  , 1.83, 0.31, 1.08, 0.04, 0.  , 0.24, 1.31, 0.  , 0.25, 0.44, 0.6 , 0.77, 0.  , 0.  ])}
4

2. 运行命令:python show_pkl.py  ,结果如下图所示,便可以看到.pkl文件里的内容了:

(注:文件show_pkl.py保存在F:\learn_pytorch目录下,aus_openface.pkl也保存在F:\learn_pytorch目录下)

 

3. 特殊情况

有时候下载的是国外的代码,需要打开代码里的pkl文件,外国人写代码的编码方式可能和我们不一样。比如我就遇到过,用上面的代码,仍旧打不开外国人给的pkl文件。

报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 0: ordinal not in range(128)

解决:加上encoding data=pickle.load(f,encoding='latin1')  ,成功解决我的问题

 

参考:https://blog.csdn.net/LemonTree_Summer/article/details/81906547

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐