读取pickle文件内容
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())
搞定!结果如下:
键盘滴答: 药到病除
hunshimowangk: 请问解决了吗?我也遇到了同样的问题
weixin_47095102: 作者您好,我实验室服务器的cuda是12.2,不能改怎么办
CSDN-Ada助手: 恭喜你写了第7篇博客!不过很抱歉听到你遇到了CUDA out of memory的问题。希望你能够在解决这个问题的同时,继续保持对技术的热情和创作的积极性。或许你可以考虑写一些关于解决CUDA out of memory问题的经验分享,或者探讨一些与CUDA相关的其他话题。期待看到你更多的精彩内容!加油!
可爱饱了: 恭喜!能帮到你就好~