ホームページ > バックエンド開発 > Python チュートリアル > Shelve を使用して Python でオブジェクトを保存する方法

Shelve を使用して Python でオブジェクトを保存する方法

藏色散人
リリース: 2019-01-17 09:49:18
オリジナル
2694 人が閲覧しました

Shelve は、オブジェクトを永続化するための強力な Python モジュールです。オブジェクトをシェルブするときは、オブジェクトの値を識別するキーを指定する必要があります。このようにして、シェルブ ファイルは保存された値のデータベースになり、いつでもアクセスできるようになります。

Shelve を使用して Python でオブジェクトを保存する方法

Python でのシェルビングのサンプル コード

オブジェクトをシェルブするには、まずモジュールをインポートし、次に次のようにオブジェクト値を割り当てます。 ## たとえば、株価データベースを保存したい場合は、次のコードを調整できます。

 import shelve
database = shelve.open(filename.suffix)
object = Object()
database['key'] = object
ログイン後にコピー

「stock value.db」はすでに開いているため、再度開く必要はありません。代わりに、一度に複数のデータベースを開き、それぞれに自由に書き込み、プログラムの終了時に Python でデータベースを閉じることができます。たとえば、シンボルごとに別個の名前データベースを保持し、次のコードを前のコードに追加することができます。

import shelve
stockvalues_db = shelve.open('stockvalues.db')
object_ibm = Values.ibm()
stockvalues_db['ibm'] = object_ibm
object_vmw = Values.vmw()
stockvalues_db['vmw'] = object_vmw
object_db = Values.db()
stockvalues_db['db'] = object_db
ログイン後にコピー

データベース ファイルの名前またはサフィックスを変更すると、別のファイルが構成され、異なるファイルが形成されることに注意してください。データベース。

結果は、指定された値を含む 2 番目のデータベース ファイルです。カスタム形式で書かれたほとんどのファイルとは異なり、シェルブされたデータベースはバイナリ形式で保存されます。

データをファイルに書き込んだ後は、いつでも呼び出すことができます。今後のセッションでデータを復元する場合は、ファイルを再度開きます。同じセッションの場合は、値を呼び出すだけで、シェルブ データベース ファイルは読み取り/書き込みモードで開かれます。これを実現するための基本的な構文は次のとおりです。

 ## assuming shelve is already imported
stocknames_db = shelve.open('stocknames.db')
objectname_ibm = Names.ibm()
stocknames_db['ibm'] = objectname_ibm
objectname_vmw = Names.vmw()
stocknames_db['vmw'] = objectname_vmw
objectname_db = Names.db()
stocknames_db['db'] = objectname_db
ログイン後にコピー

したがって、前の例の例は次のようになります。

 import shelve
database = shelve.open(filename.suffix)
object = database['key']
ログイン後にコピー

シェルビングに関する考慮事項

次のことに注意することが重要です。閉じる データベースは、データベースが開かれるまで (またはプログラムが終了するまで) 開いたままになります。したがって、任意のサイズのプログラムを作成する場合は、使用後にデータベースを閉じる必要があります。そうしないと、データベース全体 (必要な値だけでなく) がメモリ内に留まり、コンピューティング リソースが消費されます。

シェルブ ファイルを閉じるには、次の構文を使用します。

 import shelve
stockname_file = shelve.open('stocknames.db')
stockname_ibm = stockname_file['ibm']
stockname_db = stockname_file['db']
ログイン後にコピー

上記のすべてのコード例を 1 つのプログラムに結合すると、2 つのデータベース ファイルが開き、メモリを消費することになります。したがって、前の例で銘柄名を読み取った後、次のように各データベースを順番に閉じることができます:

database.close()
ログイン後にコピー

以上がShelve を使用して Python でオブジェクトを保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート