Python はオブジェクトをファイルに保存します

巴扎黑
リリース: 2016-11-26 10:19:53
オリジナル
2198 人が閲覧しました

1. Pickle パッケージ
(1) メモリ内のオブジェクトをテキスト ストリームに変換します:

import pickle  
# define class  
class Bird(object):  
    have_feather = True  
    way_of_reproduction  = 'egg'  
  
summer       = Bird()                 # construct an object  
picklestring = pickle.dumps(summer)   # serialize object
ログイン後にコピー



pickle.dumps() メソッドを使用して、オブジェクト Summer を文字列 picklesring (つまり、テキスト ストリーム) に変換します。次に、通常のテキスト保存方法を使用して文字列をファイルに保存します (テキスト ファイルの入出力)。

もちろん、pickle.dump() メソッドを使用して上記の 2 つの部分を 1 つに結合することもできます:

import pickle  
# define class  
class Bird(object):  
    have_feather = True  
    way_of_reproduction  = 'egg'  
  
summer       = Bird()                        # construct an object  
fn           = 'a.pkl'  
with open(fn, 'w') as f:                     # open file with write-mode  
    picklestring = pickle.dump(summer, f)   # serialize and save object
ログイン後にコピー

オブジェクト Summer はファイル a.pkl に保存されます

(2)、オブジェクトを再構築します

まず、テキストからテキストを読み取り、文字列に保存します(テキストファイルの入出力)。次に、 pickle.loads(str) メソッドを使用して文字列をオブジェクトに変換します。この時点で、プログラムにはオブジェクトのクラス定義がすでに存在している必要があることに注意してください。

さらに、pickle.load() メソッドを使用して上記の手順をマージすることもできます:

import pickle  
# define the class before unpickle  
class Bird(object):  
    have_feather = True  
    way_of_reproduction  = 'egg'  
fn     = 'a.pkl'  
with open(fn, 'r') as f:  
    summer = pickle.load(f)   # read file and build object
ログイン後にコピー



2. cPickle パッケージ
cPickle パッケージの機能と使用法は、pickle パッケージとほぼ同じです (は違いです)実際にはほとんど使用されません)、違いは、cPickle が C 言語で書かれており、pickle パッケージよりも 1000 倍高速であることです。上記の例で、cPickle パッケージを使用したい場合は、インポート ステートメントを次のように変更できます。
cPickle を pickle としてインポート
変更を加える必要はありません。


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