ホームページ  >  記事  >  バックエンド開発  >  Python の shelve モジュールの簡単な紹介 (例付き)

Python の shelve モジュールの簡単な紹介 (例付き)

不言
不言オリジナル
2018-09-25 17:15:393326ブラウズ

この記事では、Python の shelve モジュールについて簡単に紹介します (サンプル付き)。これには一定の参考価値があります。必要な友人は参照できます。お役に立てれば幸いです。

shelve: オブジェクトをファイルに保存し (デフォルトのデータ ストレージ ファイルはバイナリ)、pickle でサポートされている任意の Python データ形式を永続化できるオブジェクト永続化モジュール

shelve の唯一のメソッド:

shelve.open(filename,flag = 'c'、protocol = None、writebake = False)

##関連ファイル パス ##flag# ' w' : 既存のデータ ストレージを開きます読み取り/書き込みモードのファイル 'c' : (デフォルト) 既存のデータ ストレージ ファイルを読み取り/書き込みモードで開きます。存在しない場合は作成します 'n' : 常に読み取り/書き込みモードで開き、新しい空のデータ ストレージ ファイルを作成しますprotocol
import shelve
date = shelve.open('family.txt')         # Python的自处理系统会自动生成三个文件
date['father'] = 'Presly'                        # 默认为创建并且写入“c”
date['mather'] = 'Vera'
date['baby'] = [123, ]
date.close()
m = shelve.open('family.txt', falg= 'r', writebake=True)          # 当writebake设置为True时,文件里才能直接添加
print(m['baby']) 
m['baby'].append(345)
print(m['father'])
print('-------------') 
for key, value in m.items():           # 以字典的格式 
    print(key, ':', value) 
m.close()
[123]
Presly
-------------
father : Presly
mather : Vera
baby : [123,345]
#ファイル名
'r' : 既存のデータ ストレージ ファイルを読み取り専用モードで開きます
はデータのシリアル化に使用されるプロトコルを示します。デフォルトは None (pickle v3) ##writebake
#ライトバック機能を有効にするかどうかを示します ##1. ファイルにはキーと値を次のように保存できます。 Dictionary (注: キーは文字列である必要があり、値は任意のデータ型にすることができます)

2. シェルブのシリアル化

#クラス データをシリアル化してから要素を逆シリアル化できます

  • ##pickle とは異なり、pickle はロードのみが可能ですshelve はファイルに保存されている異なるキー値または同じキー値を直接繰り返し取り出すことができます。

  • ##3.

  • shelve はライブラリと同様の操作、追加、削除、変更、チェックを実行できます

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。