1. 程式人生 > 程式設計 >python資料持久儲存 pickle模組的基本使用方法解析

python資料持久儲存 pickle模組的基本使用方法解析

python的pickle模組實現了基本的資料序列和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存;通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。

基本介面:

pickle.dump(obj,file,[,protocol])

註解:將物件obj儲存到檔案file中去。

protocol為序列化使用的協議版本,0:ASCII協議,所序列化的物件使用可列印的ASCII碼錶示;1:老式的二進位制協議;2:2.3版本引入的新二進位制協議,較以前的更高效。其中協議0和1相容老版本的python。protocol預設值為0。

file:物件儲存到的類檔案物件。file必須有write()介面, file可以是一個以'w'方式開啟的檔案或者一個StringIO物件或者其他任何實現write()介面的物件。如果protocol>=1,檔案物件需要是二進位制模式開啟的。

pickle.load(file)

註解:從file中讀取一個字串,並將它重構為原來的python物件。

file:類檔案物件,有read()和readline()介面。

A Simple Code

#使用pickle模組將資料物件儲存到檔案
import pickle
data1 = {'a': [1,2.0,3,4+6j],'b': ('string',u'Unicode string'),'c': None}

selfref_list = [1,2,3]
selfref_list.append(selfref_list)

output = open('data.pkl','wb')

# Pickle dictionary using protocol 0.
pickle.dump(data1,output)

# Pickle the list using the highest protocol available.
pickle.dump(selfref_list,output,-1)

output.close()
#使用pickle模組從檔案中重構python物件
import pprint,pickle
pkl_file = open('data.pkl','rb')
data1 = pickle.load(pkl_file)
pprint.pprint(data1)
data2 = pickle.load(pkl_file)
pprint.pprint(data2)
pkl_file.close()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。