在程式執行過程中所有的變數都是存在記憶體中,一旦程式關閉或者電腦關機,記憶體中的所有資料都會丟失。為了能夠繼續使用,我們需要將資料存放在硬碟裡。
我們把變數從記憶體中變成可儲存或傳輸的過程稱之為序列化,在python中叫pickling,在其他語言中也被稱之為serialization,marshalling,flattening等等,都是乙個意思。
序列化之後,就可以把序列化後的內容寫入磁碟,或者通過網路傳輸到別的機器上。
反過來,把變數內容從序列化的物件重新讀到記憶體裡稱之為反序列化,即unpickling。
首先,我們嘗試把乙個物件序列化並寫入檔案:
import pickle
d =dict
(name=
'bob'
, age=
20, score=88)
with
open
('data.pkl'
,'wb'
)as ff:
pickle.dump(d, ff)
此時,會在相同目錄下產生乙個『data.pkl』檔案,這個檔案是人類不可讀的。
with open() as
是python中開啟資料夾的一種操作,『wb』是以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。
關於python中open
的用法和讀寫檔案的操作,請分別訪問部落格和教程了解。
序列化操作完成之後我們要進行反序列化:
with
open
('data.pkl'
,'rb'
)as ff:
data1 = pickle.load(ff)
print
(data1)
其中』rb』表示唯讀操作。
輸出結果為:
python pickle序列化儲存
序列化儲存 序列化物件可以在磁碟上儲存物件,並在需要的時候讀取出來。任何物件都可以執行序列化操作,字典物件也不例外。def storetree inputtree,filename import pickle fw open filename,w pickle.dump inputtree,fw f...
python pickle資料序列化儲存簡單學習
注 windowns,python2.7 理解 可用來儲存想要儲存的資料,存什麼格式的資料,讀的時候就是什麼資料,和open write只讀寫字串不一樣。使用 匯入模組 import cpickle as pickle 因為新版本的python使用c實現了以前的pickle模組,速度會更快,所以我們...
序列化(序列化)
原書上翻譯為序列化,msdn翻譯為序列化 作用 當需要儲存,或者網路傳輸 remoting時,資料 物件或值 需要序列化 類似於打包傳輸檔案。system.serializableattribute 序列化是指儲存和獲取磁碟檔案 記憶體或其他地方中的物件。在序列化時,所有的例項資料都儲存到儲存介質上...