python小モジュール--anydbm,shelveモジュール

39386 ワード

回転:http://python.01314.cn/201506145.html
anydbmは、一つのディスク上のファイルを一つの「dict-like」オブジェクトと関連付けることを許可します.この「dict-like」オブジェクトを操作して、dictオブジェクトを操作するように、最後に「dict-like」のデータをファイルに恒久化します.この「dict-like」オブジェクトを操作する場合、keyとvalueの種類は文字列でなければなりません.次はanydbmを使用した例です.
#coding=utf-8  
  
import anydbm  
  
def CreateData():  
    try:  
        db = anydbm.open('db.dat', 'c')  
        # key value        
        # db['int'] = 1  
        # db['float'] = 2.3  
        db['string'] = "I like python."  
        db['key'] = 'value'  
    finally:  
        db.close()  
          
def LoadData():  
    db = anydbm.open('db.dat', 'r')  
    for item in db.items():  
        print item  
    db.close()  
          
if __name__ == '__main__':  
    CreateData()  
    LoadData()  
     anydbm.open(filename[,flags[,mode]])は関連ファイルのパスです.オプションパラメータflaggeは、「r」:読み取り専用、「w」:読み取り可能、書き込み可能、「c」:データファイルが存在しないなら、作成し、読み書きが許可されます.n':open()を呼び出すたびに空のファイルを再作成します.modeはunixにおけるファイルモードで、0666に示すように、すべてのユーザに読み書きを許可する.
    
    shelveモジュールはanydbmの拡張版で、「dict-like」オブジェクトにpickleによってプロビジョニング可能なオブジェクトを格納することをサポートしていますが、keyも文字列でなければなりません.同じ例をshelveとして実現します.
import shelve  
  
def CreateData():  
    try:  
        db = shelve.open('db.dat', 'c')  
        # key value        
        db['int'] = 1  
        db['float'] = 2.3  
        db['string'] = "I like python."  
        db['key'] = 'value'  
    finally:  
        db.close()  
          
def LoadData():  
    db = shelve.open('db.dat', 'r')  
    for item in db.items():  
        print item  
    db.close()  
          
if __name__ == '__main__':  
    CreateData()  
    LoadData()