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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM