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

藏色散人
リリース: 2019-01-18 09:29:47
オリジナル
3146 人が閲覧しました

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

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

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

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

Python での Pickle サンプル コード

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

import pickle 
object = Object() 
filehandler = open(filename, 'w') 
pickle.dump(object, filehandler)
ログイン後にコピー

以下は実際の例です:

import pickle 
import math 
object_pi = math.pi 
file_pi = open('filename_pi.obj', 'w') 
pickle.dump(object_pi, file_pi)
ログイン後にコピー

このフラグメントは、object_pi の内容をファイル ハンドラー file_pi に書き込み、ファイル ハンドラー file_pi は実行ディレクトリ内のファイル filename_pi.obj にバインドされます。

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

import pickle 
filehandler = open(filename, 'r') 
object = pickle.load(filehandler)
ログイン後にコピー

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

import pickle 
file_pi2 = open('filename_pi.obj', 'r') 
object_pi2 = pickle.load(file_pi2)
ログイン後にコピー

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

Pickle についての事柄

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

pickle プロトコルは Python に固有であり、言語間で使用できるという保証はありません。互換性がある。情報を転送して、Perl、PHP、Java、またはその他の言語で使用できるようにすることはできない可能性があります。

Python の異なるバージョン間の互換性は保証されません。すべての Python データ構造をモジュールでシリアル化できるわけではないため、非互換性が存在します。

デフォルトでは、最新バージョンの pickle プロトコルが使用されます。手動で変更しない限り、このままになります。

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

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