「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > オブジェクトのコーラスをピクルする方法: Python のピクルを使用して複数のインスタンスを保存およびロードしますか?

オブジェクトのコーラスをピクルする方法: Python のピクルを使用して複数のインスタンスを保存およびロードしますか?

2024 年 11 月 20 日に公開
ブラウズ:480

How to Pickle a Chorus of Objects: Saving and Loading Multiple Instances with Python\'s Pickle?

オブジェクトのコーラスをピクルする: 複数のインスタンスを保存およびロードする方法

Python の pickle モジュールは、オブジェクトをファイルにシリアル化する便利な手段を提供します、後で使用するために永続化できるようになります。しかし、複数のオブジェクトの保存が必要なシナリオはどうなるでしょうか?この記事では、そのような状況に対処する方法を詳しく掘り下げます。

ピクルの難題: 1 つまたは多数の物語

あなたが発見したように、ピクルは単一の節約に優れています。オブジェクト。ただし、この機能を複数のオブジェクトに拡張すると、「オブジェクトをまとめて保存できるか?」という疑問が生じます。リストや他のアプローチを使用する代替手段はありますか?

Pickle のパワーを活用する: 集合的なシリアル化

安心してください。pickle の機能は 1 つのファイル内に複数のオブジェクトを保存することまで拡張されています。このアンサンブル アプローチの鍵は、オブジェクトを反復処理し、 pickle.dump().

import pickle

# Sample list of players
players = [Player1, Player2, Player3]

with open('players.pkl', 'wb') as f:
    for player in players:
        pickle.dump(player, f)

Pickle アンサンブルの取得: 保存されたメロディーの公開

プレイヤーが Pickle になったら、取得は単純な逆のプロセスです。再度 for ループを使用して、pickle ファイルを反復処理し、pickle.load().

import pickle

with open('players.pkl', 'rb') as f:
    loaded_players = []
    while True:
        try:
            loaded_players.append(pickle.load(f))
        except EOFError:
            break

Pickle Symphony の最適化: 2 つの追加

基本的なアプローチに加えて、次の拡張機能を検討してください:

  1. 明示的な長さのストレージの回避: 使用ファイルの終わりに到達するまでオブジェクトを継続的にロードするジェネレーターにより、メモリ消費が大幅に削減されます。
  2. ジェネレーターの利点: ジェネレーターを採用すると、メモリに優しい増分ロードが可能になり、特に大規模なデータセットに役立ちます。

これらのテクニックを組み込むことで、pickle を使用して複数のオブジェクトを保存およびロードする技術を習得し、ソフトウェアをシームレスに持続するメロディーの交響曲に変えることができます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3