レビュー

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

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

デフォルトでPythonライブラリの一部であるPickleは、ユーザーセッション間で永続性が必要な場合に重要なモジュールです。モジュールとして、pickleはプロセス間のPythonオブジェクトの保存を提供します。

データベース、ゲーム、フォーラム、またはセッション間で情報を保存する必要がある他のアプリケーション用にプログラミングしている場合でも、pickleは識別子と設定を保存するのに役立ちます。 pickleモジュールは、ブール値、文字列、バイト配列などのデータ型、リスト、辞書、関数などを保存できます。

注意: 酸洗の概念は、シリアル化、マーシャリング、フラット化とも呼ばれます。ただし、後で取得するためにオブジェクトをファイルに保存するという点は常に同じです。 Picklingは、オブジェクトを1つの長いバイトストリームとして書き込むことでこれを実現します。

Pythonのピクルのサンプルコード

オブジェクトをファイルに書き込むには、次の構文のコードを使用します。

輸入漬物
オブジェクト= Object()
filehandler = open(filename、 'w')
pickle.dump(object、filehandler)

実際の例は次のとおりです。

輸入漬物
インポート数学
object_pi = math.pi
file_pi = open( 'filename_pi.obj'、 'w')
pickle.dump(object_pi、file_pi)

このスニペットは、 object_pi ファイルに ハンドラーfile_pi、これはファイルにバインドされます filename_pi.obj 実行ディレクトリ内。

オブジェクトの値をメモリに復元するには、ファイルからオブジェクトをロードします。 pickleがまだ使用するためにインポートされていない場合、インポートすることから始めます。

輸入漬物
filehandler = open(filename、 'r')
オブジェクト= pickle.load(filehandler)

次のコードは、piの値を復元します。

輸入漬物
file_pi2 = open( 'filename_pi.obj'、 'r')
object_pi2 = pickle.load(file_pi2)

これで、オブジェクトは再び使用できるようになり、今回は object_pi2。もちろん、必要に応じて元の名前を再利用できます。この例では、明確にするために個別の名前を使用しています。

ピクルスについて覚えておくべきこと

pickleモジュールを使用するときは、次のことに注意してください。

  • pickleプロトコルはPythonに固有です-言語間の互換性が保証されていません。ほとんどの場合、Perl、PHP、Java、または他の言語で役立つように情報を転送することはできません。
  • また、Pythonの異なるバージョン間の互換性の保証もありません。すべてのPythonデータ構造がモジュールによってシリアル化できるわけではないため、非互換性が存在します。
  • デフォルトでは、最新バージョンのpickleプロトコルが使用されます。手動で変更しない限り、そのままです。

先端: また、オブジェクトの連続性を維持する別の方法のために、シェルブを使用してPythonでオブジェクトを保存する方法も調べてください。