python小モジュール--anydbm,shelveモジュール
39386 ワード
回転:http://python.01314.cn/201506145.html
anydbmは、一つのディスク上のファイルを一つの「dict-like」オブジェクトと関連付けることを許可します.この「dict-like」オブジェクトを操作して、dictオブジェクトを操作するように、最後に「dict-like」のデータをファイルに恒久化します.この「dict-like」オブジェクトを操作する場合、keyとvalueの種類は文字列でなければなりません.次はanydbmを使用した例です.
shelveモジュールはanydbmの拡張版で、「dict-like」オブジェクトにpickleによってプロビジョニング可能なオブジェクトを格納することをサポートしていますが、keyも文字列でなければなりません.同じ例をshelveとして実現します.
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()