如果你有寫數據來之不易,並且希望每次都可以方便的讀取,那么存儲為一個對象是一個很不錯的解決方法
方法一、
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