1.什麼是Pickle?Pickle的優點是?
Python提供了一個名為Pickle的標準模組。這是一個令人讚歎的模組,幾乎可以把任何Python對象(甚至是一些Python代碼塊(form)!)表達為為字串,這一過程稱之為封裝(pickling)。從字串表達出重新構造對象稱之為拆封(unpickling)。封裝狀態中物件可以儲存在檔案或對象中,也可以通過網路在遠端機器之間傳輸。
Pickle模組會建立一個Python語言專用的二進位格式,而不需要把他們轉化為字串,也不用底層的檔案訪問操作把它們寫入到一個二進位檔案裡,你基本上不用考慮任何檔案細節。
2.Pickle的主要函數
Pickle模組中的兩個主要函數是dump()和load()。
dump()函數把資料對象以特定的格式儲存到給定的檔案中。
load()函數從檔案中取出已儲存的對象時,pickle知道如何恢複這些對象到它們本來的格式。
dumps()函數執行和dump() 函數相同的序列化。取代接受流對象並將序列化後的資料儲存到磁碟檔案,這個函數簡單的返回序列化的資料。
loads()函數執行和load() 函數一樣的還原序列化。取代接受一個流對象並去檔案讀取序列化後的資料,它接受包含序列化後的資料的str對象, 直接返回的對象。
cPickle是pickle得一個更快得C語言編譯版本。
pickle和cPickle相當於java的序列化和還原序列化操作
3.Pickle的使用方法
import pickle
with open('mydata.pickle','wb') as mysavedata:
pickle.dump({'alice':0,'clio':8},mysavedata)
with open('mydata.pickle','rb') as myrestoredata:
a_dict = pickle.load(myrestoredata)
print a_dict
結果:
{'clio': 8, 'alice': 0}