Maison  >  Article  >  développement back-end  >  Comment sérialiser et désérialiser plusieurs objets avec Pickle en Python ?

Comment sérialiser et désérialiser plusieurs objets avec Pickle en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 19:10:29162parcourir

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

Sérialisation et désérialisation d'objets multiples avec Pickle

En Python, le module pickle fournit un moyen pratique de sérialiser et de désérialiser des objets, mais comment faire vous gérez plusieurs objets ?

Pour enregistrer plusieurs objets dans un fichier pickle, vous pouvez utiliser une liste ou un tuple pour les agréger. Par exemple :

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

Pour charger les objets, simplement :

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

Le module pickle prend en charge le stockage du nombre d'articles en cours de décapage, ce qui permet de les charger individuellement. Cependant, pour des ensembles de données plus volumineux, tout charger en mémoire peut ne pas être optimal.

Une alternative consiste à utiliser un générateur pour charger les objets un par un :

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

De cette façon, seulement l'objet suivant est chargé en cas de besoin, économisant ainsi la mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn