17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

dumps(objet[, protocole]) -> chaîne<br />

Principaux modules, partie 2<br />

CHAPITRE 9<br />

Similaire à dump(), mais renvoie le résultat de la sérialisation dans un objet de type str.<br />

loads(chaîne [, protocole]) -> objet<br />

Similaire à load() mais utilise un objet de type str plutôt qu’un fichier.<br />

Utilisation de loads et dumps<br />

>>> from cPickle import loads, dumps<br />

>>> class MyClass(object):<br />

... def __init__(self):<br />

... self.data = [1, 2, 3]<br />

...<br />

>>> instance_of = MyClass()<br />

>>> instance_of.data.append(56)<br />

>>> serialisation = dumps(instance_of)<br />

>>> serialisation<br />

"ccopy_reg\n_reconstructor\np1\n(c__main__\nMyClasse\np2\nc__builtin__\<br />

nobject\np3\nNtRp4\n(dp5\nS'data'\np6\n(lp7\nI1\naI2\naI3\naI56\nasb."<br />

>>> more = loads(serialisation)<br />

>>> more.data<br />

[1, 2, 3, 56]<br />

Plusieurs objets peuvent être sérialisés dans le même flux, grâce à la classe Pickler,<br />

qui permet de gérer un fichier et d’y accumuler des objets, et à la classe Unpickler qui<br />

renvoie les objets reconstruits.<br />

class Pickler(fichier [, protocole])<br />

Pickler s’instancie avec un objet de type file comme dump() et offre deux<br />

méthodes :<br />

dump(object) : sérialise l’objet dans le fichier. Peut être appelée plusieurs fois<br />

pour stocker plusieurs objets.<br />

clear_memo() : permet d’initialiser le cache interne, qui contient l’ensemble des<br />

objets visités par les sérialisations. Utile lorsque l’objet est réutilisé.<br />

class Unpickler(fichier)<br />

Unpickler fournit une interface de désérialisation :<br />

load() : lit le flux et retourne un objet. Peut être appelée plusieurs fois pour récupérer<br />

les objets stockés dans le flux. Lorsque la fin des données est atteinte, une<br />

erreur EOFError est levée.<br />

Noload() : similaire à load() mais ne charge pas les objets en mémoire (des<br />

objets None sont renvoyés). Permet de parcourir la structure.<br />

267

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!