溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python序列化與反序列化pickle

發(fā)布時(shí)間:2020-07-26 14:52:57 來源:網(wǎng)絡(luò) 閱讀:197 作者:wx5a4c600866558 欄目:編程語言

#要將Python對(duì)象作為一個(gè)文件的形式保存到磁盤,就叫序列化;
#當(dāng)我們需要用到這個(gè)這對(duì)象,再從磁盤加載這個(gè)對(duì)象,就叫反序列化
#Python自帶的pickle可以幫我們實(shí)現(xiàn),pickle這個(gè)單詞是咸菜的意思,咸菜耐儲(chǔ)存,是不是很形象呀?

#對(duì)象的存儲(chǔ)分為兩步:
#1.將對(duì)象在內(nèi)存中的數(shù)據(jù)抓取取來,轉(zhuǎn)換成一個(gè)有序的文本,這一步就是序列化
#2.再將文本存儲(chǔ)到磁盤中

import pickle

class Bird(object):
    have_feather = True
    reproduction_method = "egg"

#創(chuàng)建一個(gè)對(duì)象
summer = Bird()
pickle_string = pickle.dumps(summer) #已被序列化成二進(jìn)制數(shù)據(jù)

with open("summer.pkl", "wb") as fp:
fp.write(pickle_string)

#dump方法可以把上面兩步作為一步來完成:
#with open("summer.pkl", "wb") as fp:
#pickle.dump(summer, fp)

#從磁盤文件上恢復(fù)對(duì)象:先讀取文件,再loads

with open("summer.pkl", "rb") as fp:
    summer = fp.read() #先讀取
    summer = pickle.loads(summer) #再序列化
    print(summer.have_feather)

#或者用load方法,一步到位
#with open("summer.pkl", "rb") as fp:
#summer = pickle.load(fp)
#print(summer.have_feather)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI