この記事では、Python の shelve モジュールについて簡単に紹介します (サンプル付き)。これには一定の参考価値があります。必要な友人は参照できます。お役に立てれば幸いです。
shelve: オブジェクトをファイルに保存し (デフォルトのデータ ストレージ ファイルはバイナリ)、pickle でサポートされている任意の Python データ形式を永続化できるオブジェクト永続化モジュール
shelve の唯一のメソッド:
shelve.open(filename,flag = 'c'、protocol = None、writebake = False)
#ファイル名 | ##関連ファイル パス|
'r' : 既存のデータ ストレージ ファイルを読み取り専用モードで開きます | # ' w' : 既存のデータ ストレージを開きます読み取り/書き込みモードのファイル |
'c' : (デフォルト) 既存のデータ ストレージ ファイルを読み取り/書き込みモードで開きます。存在しない場合は作成します | |
'n' : 常に読み取り/書き込みモードで開き、新しい空のデータ ストレージ ファイルを作成します | |
protocol | |
はデータのシリアル化に使用されるプロトコルを示します。デフォルトは None (pickle v3) | ##writebake |
#ライトバック機能を有効にするかどうかを示します | ##1. ファイルにはキーと値を次のように保存できます。 Dictionary (注: キーは文字列である必要があり、値は任意のデータ型にすることができます) |
2. シェルブのシリアル化
#クラス データをシリアル化してから要素を逆シリアル化できます
##pickle とは異なり、pickle はロードのみが可能ですshelve はファイルに保存されている異なるキー値または同じキー値を直接繰り返し取り出すことができます。
##3.
import shelve def store_information(database): info = {} ID = input('Enter the ID number:') info['name'] = input('Enter the name:') # 将name ,age , phone 存入字典info里 info['age'] = input('Enter the age:') info['phone'] = input('Enter the phone:') database[ID] = info # 用ID : info 存入 database文件 def lookup_information(database): ID = input('Enter the ID:') field = input('What would you like to know?(name,age,phone)') field = field.strip().lower() print(database[ID][field]) # 通过输入的ID与 field 直接打印结果 def print_help(): print('Please enter the help command:') print('store :store informatinon to database') print('lookup :look up information by numID') print('quit :save information and quit') print('? :print help command') def enter_command(): cmd = input('Enter command (? for help)') cmd = cmd.strip().lower() return cmd def main(): database = shelve.open('db.dat') try: while True: cmd = enter_command() if cmd == 'store': store_information(database) # 当if函数结束,自动跳转到cmd = enter_command()行 elif cmd == 'lookup': lookup_information(database) elif cmd == '?': print_help() elif cmd == 'quit': return # 跳出while循环 finally: database.close() if __name__ == '__main__': main()
以上がPython の shelve モジュールの簡単な紹介 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。