*使用pickle处理数据存储,类似于java中的serialization,是将对象转化为二进制码存入文件中,主要函数pickle.dump(obj,file),pickle.load(file)

*在每个文件加入后缀.pkl,实现逐行数据存入

*使用shelve,实现dictionary数据的隐形固态存储,具体实现方式与pickle相同

 
  
  1. import pickle 
  2. dbfile=open('people-pickle','wb')  #二进制写
  3. pickle.dump(db, dbfile) 
  4. dbfile.close() 
  5.  
  6. dbfile=open('people-pickle','rb')  #二进制读
  7. db=pickle.load(dbfile) 
  8. print db   
  9.  
  10. import pickle 
  11. for (key, record) in [('bob', bob), ('tom', tom), ('sue', sue)]: 
  12.     recfile = open(key + '.pkl', 'wb')  
  13.     pickle.dump(record, recfile)  
  14.     recfile.close()   
  15.  
  16. import pickle, glob 
  17. for filename in glob.glob('*.pkl'):  #当前文件夹中所有以.pkl为后缀的文件
  18.     recfile = open(filename, 'rb') 
  19.     record = pickle.load(recfile)  
  20.     print(filename, '=>\n ', record) 
  21. suefile = open('sue.pkl', 'rb')  
  22. print(pickle.load(suefile)['name'])    
  23.  
  24. import shelve 
  25. db = shelve.open('people-shelve')  
  26. db['bob'] = bob 
  27. db['sue'] = sue 
  28. db.close() 
  29.  
  30. db = shelve.open('people-shelve') 
  31. sue=db['sue'] 
  32. sue['name']='Susie Q' #不能直接赋值给db['sue']['name'] 
  33. db['sue']=sue 
  34. db.close 
  35.  
  36. db = shelve.open('people-shelve') 
  37. print db 
  38. db.close()