在程序運行的過程中,所有的變量都是在內存中,有時候希望將對象存儲下來。我們把對象從內存中變成可存儲或傳輸的過程稱之為序列化,在Python中叫pickling。
pickle
Python提供兩個模塊來實現序列化:
cPickle
和
pickle
。這兩個模塊功能是一樣的,區別在于
cPickle
是C語言寫的,速度快,
pickle
是純Python寫的,速度慢。
將對象保存為字符串
import pickle
a1 = ['abc', [1, 2], {'x': 3}]
s1 = pickle.dumps(a1)
print(s1)
b'\x80\x03]q\x00(X\x03\x00\x00\x00abcq\x01]q\x02(K\x01K\x02e}q\x03X\x01\x00\x00\x00xq\x04K\x03se.'
a2 = pickle.loads(s1)
print(a2)
['abc', [1, 2], {'x': 3}]
將對象保存為文件
import pickle
a1 = ['abc', [1, 2], {'x': 3}]
with open('a1.txt', 'wb') as f:
s1 = pickle.dump(a1, f)
with open('a1.txt', 'rb') as f:
a2 = pickle.load(f)
joblib
joblib庫是由scikit-learn外帶的,常用于保存機器學習模型。對于大數據而言,joblib比pickle更加高效,但是joblib只能將對象存儲在磁盤文件中,不能保存為字符串。
from sklearn.externals import joblib
a1 = ['abc', [1, 2], {'x': 3}]
joblib.dump(a1, 'a1.txt')
a2 = joblib.load('a1.txt')
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
