Python學習日記-2
- 2020 年 1 月 6 日
- 筆記
*使用pickle處理數據存儲,類似於java中的serialization,是將對象轉化為二進制碼存入文件中,主要函數pickle.dump(obj,file),pickle.load(file)
*在每個文件加入後綴.pkl,實現逐行數據存入
*使用shelve,實現dictionary數據的隱形固態存儲,具體實現方式與pickle相同
import pickle dbfile=open('people-pickle','wb') #二進制寫pickle.dump(db, dbfile) dbfile.close() dbfile=open('people-pickle','rb') #二進制讀db=pickle.load(dbfile) print db import pickle for (key, record) in [('bob', bob), ('tom', tom), ('sue', sue)]: recfile = open(key + '.pkl', 'wb') pickle.dump(record, recfile) recfile.close() import pickle, glob for filename in glob.glob('*.pkl'): #當前文件夾中所有以.pkl為後綴的文件 recfile = open(filename, 'rb') record = pickle.load(recfile) print(filename, '=>n ', record) suefile = open('sue.pkl', 'rb') print(pickle.load(suefile)['name']) import shelve db = shelve.open('people-shelve') db['bob'] = bob db['sue'] = sue db.close() db = shelve.open('people-shelve') sue=db['sue'] sue['name']='Susie Q' #不能直接賦值給db['sue']['name'] db['sue']=sue db.close db = shelve.open('people-shelve') print db db.close()