»Gauß wusste alles« – Ulrich Kaiser
19 Datenspeicherung
In den folgenden Abschnitten werden wir uns mit der permanenten Speicherung von Daten in den verschiedensten Formaten befassen. Das schließt unter anderem komprimierte Archive, XML-Dateien und Datenbanken mit ein.
19.1 Komprimierte Dateien lesen und schreiben – gzip 

Mit dem Modul gzip der Standardbibliothek können Sie auf sehr einfache Weise Dateien verarbeiten, die mit der zlib-Bibliothek [Die zlib ist eine quelloffene Kompressionsbibliothek, die unter anderem vom Unix-Programm gzip verwendet wird. Nähere Informationen können Sie der Homepage unter http://www.zlib.net entnehmen. ] erstellt wurden. Außerdem können Sie damit selbst zlib-komprimierte Dateien erzeugen.
Das Modul stellt eine Funktion namens open bereit, die sich in ihrer Verwendung an die Built-in Function open anlehnt:
gzip.open(filename[, mode[, compresslevel])
Die Funktion gzip.open gibt ein Objekt zurück, das wie ein ganz normales Dateiobjekt verwendet werden kann.
Die Parameter filename und mode sind gleichbedeutend mit denen der Built-in Function open.
Mit dem letzten Parameter, compresslevel, kann angegeben werden, wie stark die Daten beim Schreiben in die Datei komprimiert werden sollen. Erlaubt sind Ganzzahlen von 0 bis 9, wobei 0 für die schlechteste und 9 für die beste Kompressionsstufe steht. Je höher die Kompressionsstufe ist, desto mehr Rechenzeit ist auch für das Komprimieren der Daten erforderlich. Wird der Parameter compress level nicht angegeben, verwendet gzip standadmäßig die beste Kompression.
>>> import gzip
>>> f = gzip.open("testdatei.gz", "wb")
>>> f.write("Hallo Welt")
>>> f.close()
>>> g = gzip.open("testdatei.gz")
>>> g.read()
'Hallo Welt'In dem Beispiel schreiben wir einen einfachen String in die Datei testdatei.gz und lesen ihn anschließend wieder aus.
Andere Module für den Zugriff auf komprimierte Daten
Es existieren in der Standardbibliothek von Python noch weitere Module, die den Zugriff auf komprimierte Daten erlauben. Aus Platzgründen muss hier auf eine ausführliche Besprechung verzichtet werden.
Die folgende Tabelle gibt einen Überblick über alle Module, die komprimierte Daten verwalten können:
| Modul | Beschreibung |
|
zlib |
Eine Low-Level-Bibliothek, die direkten Zugriff auf die Funktionen der zlib ermöglicht. Mit ihr ist es unter anderem möglich, Strings zu komprimieren oder zu entpacken. Das Modul gzip greift intern auf das Modul zlib zurück. |
|
gzip |
Beschreibung siehe oben. |
|
bz2 |
Bietet komfortablen Zugriff auf Daten, die mit dem bzip2-Algorithmus komprimiert wurden, und ermöglicht es, neue komprimierte Dateien zu erzeugen. Auch bz2 implementiert ein Dateiobjekt, das genauso zu handhaben ist wie die Objekte, die die Built-in Function open zurückgibt. In der Regel ist die Kompression von bzip2 der von zlib in puncto Kompressionsrate überlegen. |
|
zipfile |
Ermöglicht den Zugriff auf ZIP-Archive, wie sie beispielsweise von dem bekannten Programm WinZip erstellt werden. Auch die Manipulation und Erzeugung neuer Archive ist möglich. Das Modul zipfile ist sehr umfangreich und mächtig und in jedem Fall einen näheren Blick wert. |
|
tarfile |
Implementiert Funktionen und Klassen, um die in der Unix-Welt weit verbreiteten tar-Archive zu lesen oder zu schreiben. |




bestellen





