ホームページ  >  記事  >  バックエンド開発  >  Python の Pickle を使用して複数のオブジェクトをシリアル化および逆シリアル化する方法?

Python の Pickle を使用して複数のオブジェクトをシリアル化および逆シリアル化する方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 19:10:29162ブラウズ

How to Serialize and Deserialize Multiple Objects with Pickle in Python?

Pickle を使用した複数のオブジェクトのシリアル化と逆シリアル化

Python では、pickle モジュールはオブジェクトをシリアル化および逆シリアル化する便利な方法を提供しますが、その方法は次のとおりです。複数のオブジェクトを処理しますか?

複数のオブジェクトを pickle ファイルに保存するには、リストまたはタプルを使用してそれらを集約できます。例:

<code class="python">my_objects = [obj1, obj2, obj3]
with open('objects.pkl', 'wb') as f:
    pickle.dump(my_objects, f)</code>

オブジェクトをロードするには、単に次のようにします:

<code class="python">with open('objects.pkl', 'rb') as f:
    my_objects = pickle.load(f)</code>

pickle モジュールは、pickle されるアイテムの数の保存をサポートしており、それらを個別にロードすることが可能です。ただし、大規模なデータセットの場合、すべてをメモリにロードするのは最適ではない可能性があります。

代わりに、ジェネレーターを使用してオブジェクトを一度に 1 つずつロードすることもできます。

<code class="python">def loadall(filename):
    with open(filename, "rb") as f:
        try:
            while True:
                yield pickle.load(f)
        except EOFError:
            pass</code>

この方法のみ次のオブジェクトは必要に応じてロードされ、メモリを節約します。

以上がPython の Pickle を使用して複数のオブジェクトをシリアル化および逆シリアル化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。