python 物件儲存///物件序列化
如果你有寫資料來之不易,並且希望每次都可以方便的讀取,那麼儲存為一個物件是一個很不錯的解決方法
方法一、
import pickle#首先要匯入包 dics={'a':4,'b':5,'c':6}#要儲存的資料集或者一個物件也行,這裡以字典物件為例 #把dics字典寫入到二進位制檔案‘bat.data’中(名字字尾都還可以隨意) with open('bat.data','wb') as f: #f.write( pickle.dumps(list) ) pickle.dump(list,f)#上面註釋的意義完全一樣。 #讀取儲存的物件 with open('bat.data','rb') as f: # data = pickle.loads(f.read()) data = pickle.load(f)#跟上面的data = pickle.loads(f.read())語意完全一樣。 print(data) 輸出: {'a': 4, 'b': 5, 'c': 6} 可以看出讀取的直接是一個字典(敲黑板!!)
方法二、
封裝成函式直接呼叫就行 import pickle#首先要匯入包 def readbunchobj(self,path): file_obj = open(path, 'rb') bunch = pickle.load(file_obj) file_obj.close() return bunch def writeBunchobj(self,path, bunchobj): file_obj = open(path, 'wb') pickle.dump(bunchobj, file_obj) file_obj.close()
注:
cPickle包:
cPickle包的功能和用法與pickle包幾乎完全相同 (其存在差別的地方實際上很少用到),不同在於cPickle是基於c語言編寫的,速度是pickle包的1000倍。對於上面的例子,如果想使用cPickle包,我們都可以將import語句改為:
import cPickle as pickle
參考:
https://www.cnblogs.com/saryli/p/5098893.html