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

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

不言
リリース: 2018-09-25 17:15:39
オリジナル
3403 人が閲覧しました

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

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

shelve の唯一のメソッド:

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

##関連ファイル パス ##flag# ' w' : 既存のデータ ストレージを開きます読み取り/書き込みモードのファイル 'c' : (デフォルト) 既存のデータ ストレージ ファイルを読み取り/書き込みモードで開きます。存在しない場合は作成します 'n' : 常に読み取り/書き込みモードで開き、新しい空のデータ ストレージ ファイルを作成しますprotocol

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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()

ログイン後にコピー

1

2

3

4

5

6

[123]

Presly

-------------

father : Presly

mather : Vera

baby : [123,345]

ログイン後にコピー
#ファイル名
'r' : 既存のデータ ストレージ ファイルを読み取り専用モードで開きます
はデータのシリアル化に使用されるプロトコルを示します。デフォルトは None (pickle v3) ##writebake
#ライトバック機能を有効にするかどうかを示します ##1. ファイルにはキーと値を次のように保存できます。 Dictionary (注: キーは文字列である必要があり、値は任意のデータ型にすることができます)

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

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

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

  • ##3.

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート