Python学习日记-2

发布时间:2019-09-18 07:24:51编辑:auto阅读(1431)

    *使用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() 

     

关键字