python之pkl文件的用法及说明

作者:准风璧谈 时间:2021-02-21 21:44:57 

python之pkl文件

pkl文件是python里面保存文件的一种格式,如果直接打开会显示一堆序列化的东西。

cPickle在python3中更名为pickle

使用方式如下:

import pickle as p 
shoplistfile = 'shoplist.data'  #保存文件数据所在文件的文件名
shoplist = ['apple', 'mango', 'carrot']
f = open(shoplistfile, 'wb') #二进制打开,如果找不到该文件,则创建一个
p.dump(shoplist, f) #写入文件
f.close()  #关闭文件
del shoplist # 删除列表
f = open(shoplistfile, 'rb')
storedlist = p.load(f)#重新加载数据到列表中
print(storedlist)

#输出结果:[‘apple’, ‘mango’, ‘carrot’]

代码:

import pickle
b=7
i=13000000
fa=99.056
s='中国人民 123abc'
lst=[[1,2,3],[4,5,6],[7,8,9]]
tu=(-5,10,8)
coll={4,5,6}
dic={'a':'apple','b':'banana','g':'grape','o':'orange'}
f=open('sample_pickle.dat','wb')    #以写模式打开二进制文件
try:
pickle.dump(b,f)    #对象个数
pickle.dump(i,f)    #写入整数
pickle.dump(fa,f)   #写入字符串
pickle.dump(s,f)    #写入浮点数
pickle.dump(lst,f)  #写入列表
pickle.dump(tu,f)   #写入元组
pickle.dump(coll,f) #写入集合
pickle.dump(dic,f)  #写入字典
except:
    print('写文件异常')
finally:
    f.close()
'''
使用pickle模块读取'sample_pickle.dat'内的二进制内容
'''
f=open('sample_pickle.dat','rb')
n=pickle.load(f)    #读出文件的数据个数
for i in range(n):
    x=pickle.load(f)
    print(x)
f.close()

‘’‘输出
13000000
99.056
中国人民 123abc
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
(-5, 10, 8)
{4, 5, 6}
{‘a’: ‘apple’, ‘b’: ‘banana’, ‘g’: ‘grape’, ‘o’: ‘orange’}
‘’’

如何打开.pkl文件,查看.pkl文件里的内容(Python3.6)

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目录下)

python之pkl文件的用法及说明

python之pkl文件的用法及说明

3. 特殊情况

有时候下载的是国外的代码,需要打开代码里的pkl文件,外国人写代码的编码方式可能和我们不一样。

比如我就遇到过,用上面的代码,仍旧打不开外国人给的pkl文件。

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

python之pkl文件的用法及说明

解决:

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

来源:https://blog.csdn.net/peixin_huang/article/details/103671030

标签:python,pkl文件
0
投稿

猜你喜欢

  • python3下实现搜狗AI API的代码示例

    2022-04-11 09:30:58
  • 解决python中文乱码问题方法总结

    2022-01-30 18:47:56
  • MySQL权限详解

    2011-02-16 12:20:00
  • Linux下修改MySQL数据库数据文件路径的步骤

    2024-01-19 13:53:41
  • Python安装并操作redis实现流程详解

    2023-06-15 00:17:22
  • Golang利用channel协调协程的方法详解

    2024-05-08 10:21:54
  • python中如何使用正则表达式的集合字符示例

    2022-05-31 13:00:56
  • python2.7和NLTK安装详细教程

    2021-03-30 22:41:19
  • 关于golang 字符串 int uint int64 uint64 互转问题

    2023-07-13 17:52:44
  • vue.js 实现点击展开收起动画效果

    2024-05-29 22:47:44
  • 详解Python 使用 selenium 进行自动化测试或者协助日常工作

    2023-09-05 03:44:19
  • Asp下Access无法更新的解决方法

    2012-12-04 20:19:35
  • 关于python环境变量如何配置

    2023-06-02 14:23:09
  • Python 机器学习之线性回归详解分析

    2023-08-12 09:48:13
  • 设计之外随谈

    2009-06-16 14:38:00
  • electron-builder打包配置详解

    2024-04-17 10:24:54
  • 微信小程序自定义导航教程(兼容各种手机)

    2024-04-30 09:53:12
  • python实现决策树C4.5算法详解(在ID3基础上改进)

    2022-05-06 08:01:57
  • 详解auto-vue-file:一个自动创建vue组件的包

    2024-05-11 09:11:32
  • 使用python实现正则匹配检索远端FTP目录下的文件

    2022-03-27 07:29:15
  • asp之家 网络编程 m.aspxhome.com