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.

Outils de compression<br />

gzip<br />

À SAVOIR Combiner dircmp et difflib<br />

Principaux modules<br />

CHAPITRE 8<br />

Cet outil peut être combiné à difflib, pour afficher précisément les différences entre les fichiers communs<br />

dont le contenu varie.<br />

Python inclut dans sa bibliothèque standard un module zlib qui encapsule la bibliothèque<br />

système zlib. Cette dernière, distribuée par gzip, fournit un algorithme de<br />

compression utilisé dans la plupart des formats de fichiers archives.<br />

C’est le cas bien sûr du format gzip mais aussi du format zip, sachant que les fichiers<br />

zip peuvent être compressés en suivant plusieurs méthodes, dont zlib.<br />

Enfin, le format tar utilise aussi la compression zlib pour construire et lire des<br />

archives de type tar gzipped.<br />

Cette section présente les modules qui permettent de travailler avec des archives gzip<br />

et zip, sachant que les modules bz2 et tarfile sont respectivement basés sur le<br />

même mode opératoire.<br />

Le format gzip permet de compresser des données dans un fichier archive. Il est en<br />

général utilisé avec les utilitaires GNU gzip et gunzip, qui prennent en paramètre un<br />

fichier et le compressent dans une archive d’extension .gz.<br />

Le module gzip fournit une classe similaire à une classe de type file, qui permet<br />

d’accéder de façon transparente aux données d’une archive gzip, en lecture et en écriture,<br />

comme si le fichier n’était pas compressé.<br />

class GzipFile([filename[, mode[, compresslevel[, fileobj]]]])<br />

La classe GzipFile peut être instanciée avec un objet fileobj représentant les données.<br />

fileobj peut être un objet de type file ouvert, un objet StringIO, ou tout autre<br />

objet qui puisse simuler les méthodes des objets de type fichier (read(), write(),<br />

seek(), etc.). filename est ensuite utilisé pour stipuler le nom de fichier qui est placé<br />

dans l’en-tête du fichier gzip dans le cas d’une écriture.<br />

Si filename est à None, le nom renvoyé par filobj.name est utilisé. S’il est non spécifié,<br />

mode est récupéré dans fileobj lorsqu’il est disponible. S’il ne l’est pas, il est fixé à rb par<br />

défaut. Le mode de travail peut prendre les valeurs r, rb, pour les lectures et a, ab, w ou wb<br />

pour les écritures, bien qu’il soit conseillé de toujours utiliser les modes binaires.<br />

251

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

Saved successfully!

Ooh no, something went wrong!