pickle官网:pickle — Python object serialization — Python 3.11.3 documentation
.pkl文件是python保存文件的一种文件格式,如果直接打开会显示一堆序列化的东西。
需要使用rb类型来打开
rb – 读取2进制文件,r – 读取文本文件
第一次尝试:
import pickle
if __name__ == '__main__':
f = open('/home/hcc/data/RML2016.10a_dict.pkl','rb')
a = pickle.load(f)
print(a)
一直出现如下报错:
猜测是数据类型出现问题,于是在官网里查找
于是用这个方法一试,成功了:
import pickle
if __name__ == '__main__':
f = open('/home/hcc/data/RML2016.10a_dict.pkl','rb')
a = pickle.load(f, encoding='latin1')
print(a)
结果如下:
发现一种更简单的方法:用pandas读取
import pandas as pd
pd = pd.read_pickle('/home/hcc/data/RML2016.10a_dict.pkl')
print(pd)
结果相同,而且pandas获取行数,列数和元素总数(大小)更方便
参考36_Pandas获取行数,列数和元素总数(大小)_len(df)_饺子大人的博客-CSDN博客
本来以为用以上方法就行了,用了print(pd.shape)以及一些pandas的方法时又出现了以下问题:
检查pd的类型
import pandas as pd
pd = pd.read_pickle('/home/hcc/data/RML2016.10a_dict.pkl')
print(pd)
print(type(pd))
是dict类型,那就用字典类型的函数
import pandas as pd
pd = pd.read_pickle('/home/hcc/data/RML2016.10a_dict.pkl')
print(pd)
print(type(pd))
print(pd.keys())
搞定!结果如下: