Pythonのanydbmテンプレートとshelveテンプレートの使用ガイド

1905 ワード

久しぶりにこのシリーズの文章を書いて、私はますますpythonを使うのが好きになって、それは私の仕事の中で占める割合がますます大きくなりました.くだらないことは言わないで、直接テーマに入ります.
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()