7.16 gzip -- Supporto per i file gzip

La compressione dei dati fornita dal modulo zlib � compatibile con quella usata dal programma GNU di compressione gzip. Di conseguenza, il modulo gzip fornisce la classe GzipFile per leggere e scrivere file in formato gzip, comprimendo e decomprimendo automaticamente i dati in modo tale che sembrino oggetti file ordinari. Notare che altri formati di file che possono essere decompressi dai programmi gzip e gunzip, come quelli prodotti da compress e pack, non sono supportati da questo modulo.

Il modulo definisce i seguenti elementi:

class GzipFile( [filename[, mode[, compresslevel[, fileobj]]]])
Costruttore per la classe GzipFile, che simula gran parte dei metodi di un oggetto file, con l'eccezione dei metodi readinto() e truncate(). Almeno uno fra fileobj e filename deve avere un valore significativo.

La nuova istanza di classe � basata su fileobj che deve essere un file regolare, un oggetto StringIO, od ogni altro oggetto che simuli un file. Il valore predefinito � None, in tale caso, filename viene aperto per fornire un oggetto file.

Quando fileobj � diverso da None, l'argomento filename viene usato unicamente per essere incluso nell'intestazione del file gzip, che pu� includere il nome del file originario del file non compresso. Se discernibile, il valore predefinito � il nome del file di fileobj, altrimenti, � una stringa vuota, ed in questo caso il nome del file originario non viene incluso nell'intestazione.

L'argomento mode pu� essere uno fra 'r', 'rb', 'a', 'ab', 'w' o 'wb', a seconda se il file debba essere letto o scritto. Se visibile, il valore predefinito � il modo di fileobj; altrimenti, il valore predefinito � 'rb'. Se non viene passata, l'opzione 'b' verr� aggiunta al modo per assicurare che il file sia aperto in modalit� binaria per portabilit� multipiattaforma.

L'argomento compresslevel � un intero compreso fra 1 e 9 che indica il livello di compressione; 1 � il pi� rapido e produce la compressione minore, 9 � il pi� lento e produce la compressione maggiore. Il valore predefinito � 9.

Chiamare il metodo close() di un oggetto GzipFile non provoca la chiusura i fileobj, visto che si potrebbe voler aggiungere altro materiale dopo i dati compressi. Questo permette anche di passare un oggetto StringIO aperto per essere scritto come fileobj, e recuperare il buffer di memoria risultante usando il metodo getvalue() dell'oggetto StringIO.

open( filename[, mode[, compresslevel]])
Questa � una scorciatoia per GzipFile(filename, mode, compresslevel). È richiesto l'argomento filename; mode ha come valore predefinito 'rb' mentre compresslevel ha come valore predefinito 9.

Vedete anche:

Modulo zlib:
Il modulo basilare di compressione dei dati necessario per supportare il formato dei file gzip.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.