|
|
|
La libreria di riferimento di Python |
|
|
|
Per le applicazioni che richiedono la compressione dei dati, le
funzioni in questo modulo permettono la compressione e la
decompressione, usando la libreria zlib. La libreria zlib ha la sua
pagina web pressohttp://www.gzip.org/zlib/. La versione 1.1.3 è
la versione più recente nel settembre 2000; usare una versione
successiva se disponibile. Esistono incompatibilità note fra i moduli
Python e le versioni datate della libreria zlib.
L'eccezione e le funzioni disponibili in questo modulo sono:
- exception error
-
Eccezione sollevata in caso di errori di compressione
e decompressione.
adler32( |
string[, value]) |
-
Computa un checksum Adler-32 di string. (Un checksum
Adler-32 è affidabile quasi quanto un CRC32 ma può essere computato
più rapidamente.) Se value è presente, verrà utilizzato come
valore iniziale del checksum; altrimenti, verrà usato un valore
predefinito fissato. Questo permette di computare un checksum
funzionante sulla concatenazione di alcune stringhe di input.
L'algoritmo non è crittograficamente forte, e non dovrebbe essere
usato per firme digitali o di autenticazione. Visto che
l'algoritmo è stato disegnato come algoritmo di checksum, non è
adattabile come algoritmo generale di hash.
compress( |
string[, level]) |
-
Comprime i dati in string, restituendo una stringa contenente
i dati compressi. level è un intero da 1 a 9 che esprime il
livello di compressione;
1
è il più veloce e produce la
compressione minore, 9
è il più lento e produce la massima
compressione. Il valore predefinito è 6
. In caso di errore
viene sollevata l'eccezione error.
-
Restituisce un oggetto di compressione, in modo da essere usato per
comprimere flussi di dati che non devono essere memorizzati in una
sola volta. level è un intero da 1 a 9 che esprime il
livello di compressione;
1
è il più veloce e produce la
compressione minore, 9
è il più lento e produce la massima
compressione. Il valore predefinito è 6
.
-
Computa un checksum CRC (Controllo Ciclico di Ridondanza)
di string. Se value è presente, verrà utilizzato come
valore iniziale del checksum; altrimenti, verrà usato un valore
predefinito fissato. Questo permette di computare un checksum
funzionante sulla concatenazione di alcune stringhe di input.
L'algoritmo non è crittograficamente forte, e non dovrebbe essere
usato per firme digitali o di autenticazione. Visto che l'algoritmo
è stato disegnato come algoritmo di checksum, non è adattabile come
algoritmo generale di hash.
decompress( |
string[, wbits[, bufsize]]) |
-
Decomprime in dati in string, restituendo una stringa
contenente i dati decompressi. Il parametro wbits controlla
la dimensione del window buffer. Se è stato passato bufsize,
questi sarà usato come dimensione iniziale per il buffer di output.
Solleva l'eccezione error in caso di errore.
Il valore assoluto di wbits è il logaritmo in base due della
dimensione dell'history buffer (il ``window size'') usato durante la
compressione dei dati. Il suo valore assoluto dovrebbe trovarsi fra 8
e 15 per le versioni più recenti della libreria zlib, valori più
grandi provocano una migliore compressione al costo di un maggiore
utilizzo della memoria. Il valore predefinito è 15. Quando
wbits è negativo, l'header standard di gzip viene
soppresso; questa è una caratteristica non documentata della libreria
zlib, usata per compatibilità con il formato di compressione dei file
unzip.
bufsize è la dimensione iniziale del buffer usato per contenere
i dati decompressi. Se viene richiesto più spazio, il buffer verrà
incrementato di conseguenza, perciò non c'è bisogno di impostare
esattamente questo valore; la sua immissione farà solo risparmiare
qualche chiamata a malloc(). La dimensione predefinita è
16384.
-
Restituisce un oggetto di decompressione, da essere usato per
decomprimere flussi di dati che non starebbero tutti insieme in
memoria. Il parametro wbits controlla la dimensione del
window buffer.
Gli oggetti di compressione supportano i seguenti metodi:
-
Comprime string, restituendo una stringa contenente dati
compressi per almeno parte dei dati in string. Questi dati
dovrebbero essere concatenati all'output prodotto da ogni precedente
chiamata al metodo compress(). Alcuni input possono essere
tenuti in buffer interni per un utilizzo successivo.
-
Tutti gli input in attesa vengono elaborati, e viene restituita una
stringa contenente l'output compresso rimanente. mode può essere
scelto fra le costanti Z_SYNC_FLUSH,
Z_FULL_FLUSH o Z_FINISH, predefinito è
Z_FINISH. Z_SYNC_FLUSH e
Z_FULL_FLUSH permettono un'ulteriore compressione di
stringhe di dati e vengono usate per permettere un parziale recupero
degli errori durante la decompressione, mentre Z_FINISH
finisce i flussi compressi e previene la compressione di altri dati.
Dopo aver chiamato flush() con mode impostato a
Z_FINISH, il metodo compress() non può essere
chiamato di nuovo; l'unica azione sensata è cancellare l'oggetto.
Gli oggetti di decompressione supportano i seguenti metodi, e due
attributi.
- unused_data
-
Una stringa che contiene ogni byte successivo alla fine dei dati
compressi. In sostanza, rimane vuota
""
fino a che l'ultimo
byte contenente dati compressi è disponibile. Se l'intera stringa è
formata da dati compressi, questa è ""
, ovvero una stringa
vuota.
Attualmente, l'unico modo per determinare dove una stringa di dati
compressi termina è decomprimerla. Questo significa che, quando i
dati compressi sono una parte contenuta in un file più grande, si può
trovare la fine di questa stringa leggendo i dati, ed inserendoli
insieme a qualche stringa non vuota in un metodo di decompressione di
oggetti decompress, finché l'attributo unused_data
non risulta più una stringa vuota.
- unconsumed_tail
-
Una stringa che contiene tutti i dati che non sono stati consumati
dall'ultima chiamata a decompress, a causa del superamento
del limite per il buffer dei dati non compressi. Questi dati non sono
ancora stati mandati in lavorazione da parte della zlib, per cui
dovete alimentarli (possibilmente con ulteriori concatenazioni) con
una successiva chiamata al metodo decompress, in modo da
ottenere l'output corretto.
- [max_length]
Decomprime string, restituendo una stringa contenente i dati non
compressi corrispondenti ad almeno parte dei dati in string.
Questi dati dovrebbero essere concatenati all'ouput prodotto da ogni
precedente chiamata al metodo decompress(). Alcuni dei dati
in input possono essere preservati in buffer interni per una
elaborazione successiva.
Se viene fornito il parametro facoltativo max_length, il valore
restituito non sarà superiore di max_length. Questo può
significare che non tutto l'input compresso può essere elaborato; ed
i dati non consumati verranno messi nell'attributo
unconsumed_tail. La stringa deve essere passata anche ad una
successiva chiamata a decompress() se la decompressione deve
continuare. Se max_length non viene fornita sarà decompresso
l'intero input, e unconsumed_tail sarà una stringa vuota.
-
Tutti gli input in attesa vengono elaborati, e viene restituita una
stringa contenente l'output decompresso rimanente. Dopo aver chiamato
flush(), il metodo decompress() non può più essere
nuovamente chiamato; l'unica azione sensata è cancellare l'oggetto.
|
|
|
La libreria di riferimento di Python |
|
|
|
Release 2.3.4, documentation updated on 21. maggio 2005.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.