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:
[filename[, mode[, compresslevel[, fileobj]]]]) |
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.
filename[, mode[, compresslevel]]) |
GzipFile(filename,
mode,
compresslevel)
.
È richiesto l'argomento filename; mode ha come valore
predefinito 'rb'
mentre compresslevel ha come valore
predefinito 9
.
Vedete anche: