python中 pickle模組的用法
阿新 • • 發佈:2018-12-13
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,檔案物件需要是二進位制模式開啟的。
舉例說明吧:
import pickle from collections import deque num = deque([1, 2, 3], 5) print(num) print(type(num)) # 輸出num的型別 fw = open('test', 'wb') pickle.dump(num, fw) fw.close() fo = open('test', 'rb') num2 = pickle.load(fo) fo.close() num2.append(4) num2.append(5) num2.append(6) print(num2) # 仍然保持原有屬性,只保留後5位元素 print(type(num2)) # 輸出num2的型別,和num一樣
deque([1, 2, 3], maxlen=5) <class ‘collections.deque’> deque([2, 3, 4, 5, 6], maxlen=5) <class ‘collections.deque’>