Pythonのanydbmテンプレートとshelveテンプレートの使用ガイド
1905 ワード
久しぶりにこのシリーズの文章を書いて、私はますますpythonを使うのが好きになって、それは私の仕事の中で占める割合がますます大きくなりました.くだらないことは言わないで、直接テーマに入ります.
anydbmでは、ディスク上のファイルをdict-likeオブジェクトに関連付け、dictオブジェクトを操作するように、最後にdict-likeのデータをファイルに永続化できます.この「dict-like」オブジェクトを操作する場合、keyとvalueのタイプは文字列でなければなりません.次にanydbmを使用する例を示します.
anydbm.Open(filename[,flag[,mode]])、filenameは関連するファイルパスであり、オプションパラメータflagは、「r」:読み取り専用、「w」:読み取り可能、「c」:データファイルが存在しない場合は作成し、読み取りと書き込みを許可する;n':open()を呼び出すたびに、空のファイルを再作成します.modeはunixのファイルモードであり、例えば0666はすべてのユーザが読み書きを許可することを示す.shelveモジュールはanydbmの拡張版で、「dict-like」オブジェクトにpickleでシーケンス化できる任意のオブジェクトを格納することをサポートしますが、keyも文字列でなければなりません.同じ例ではshelveと実装されます.
anydbmでは、ディスク上のファイルを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[,flag[,mode]])、filenameは関連するファイルパスであり、オプションパラメータflagは、「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()