pickle模块的使用详解

在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行预测时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间。Python提供的pickle(腌制)模块就很好地解决了这个问题,它可以序列化对象并保存到磁盘中,并在需要的时候读取出来,任何对象都可以执行序列化操作。

Pickle模块中最常用的函数为:

(1)pickle.dump(obj, file)

        函数的功能:将obj对象序列化存入到已经打开的file中。


(2)pickle.load(file)

        函数的功能:将file中的对象序列化读出。


(3)pickle.dumps(obj[, protocol])

       函数的功能:将obj对象序列化为string形式,而不是存入文件中。


(4)pickle.loads(string)

       函数的功能:从string中读出序列化前的obj对象。

import pickle
my_list = ['安徽','山东','北京','上海']
fw = open('my_list.pkl','wb')#新建并打开一个文件,以二进制方式写入
pickle.dump(my_list,fw)#保存到文件中
pickle_file.close()#关闭文件

fr = open('my_list.pkl','rb')#打开文件
print(pickle.load(fr))#从文件中读出序列化的对象

p = pickle.dumps(my_list)#保存成string形式
print(pickle.loads(p))#从string中读出序列化的对象

>>['安徽', '山东', '北京', '上海']
['安徽', '山东', '北京', '上海']

 

;