7.17.1 (De)compressione di file

La gestione dei file compressi viene offerta dalla classe BZ2File.

class BZ2File( filename[, mode[, buffering[, compresslevel]]])
Apre un file bz2. mode pu� essere 'r' o 'w', per leggere (valore predefinito) o scrivere. Quando aperto in scrittura, il file verr� creato se non esiste, troncato altrimenti. Se viene passato buffering, 0 significa senza buffer, numeri pi� grandi specificano la dimensione del buffer; il valore predefinito � 0. Se viene passato compresslevel, esso deve essere un numero compreso fra 1 e 9; il valore predefinito � 9. Aggiungete una "U" a mode per aprire il file in input con il supporto universale al newline. Ogni fine riga nel file di input verr� visto da Python come un "\n". Inoltre, un file cos� aperto ottiene l'attributo newlines; il valore di questo attributo � uno fra None (nessun fine riga ancora letto), '\r', '\n', '\r\n' o una tupla contenente tutti i tipi di fine riga visti. I fine riga universali sono disponibili solo durante la lettura. Le istanze supportano l'iterazione allo stesso modo delle normali istanze file.

close( )
Chiude il file. Imposta l'attributo closed a vero. Un file chiuso non pu� essere usato per ulteriori operazioni di I/O. close() pu� essere chiamata pi� di una volta senza provocare errori.

read( [size])
Legge al massimo size byte non compressi, restituendoli come stringa. Se l'argomento size viene omesso o � negativo, legge fino all'EOF.

readline( [size])
Restituisce la prossima riga del file, come stringa, conservando il fine riga. Un argomento size non negativo limita il massimo numero di byte da restituire (pu� quindi venire restituita una riga incompleta). Restituisce una stringa vuota in caso di EOF.

readlines( [size])
Restituisce una lista delle righe lette. L'argomento facoltativo size, se passato, � un limite approssimativo del numero di byte totale delle righe restituite.

xreadlines( )
Per retrocompatibilit�. L'oggetto BZ2File adesso include le ottimizzazioni di performance precedentemente implementate nel modulo xreadlines.
Deprecato dalla versione 2.3 di Python. Esiste solo per compatibilit� con il metodo con questo nome negli oggetti file, che � anch'esso deprecato. Usate for line in file al suo posto.

seek( offset[, whence])
Si sposta ad una nuova posizione nel file. L'argomento offset rappresenta il conteggio dei byte. L'argomento facoltativo whence, ha valore predefinito 0 (offset parte dall'inizio del file, offset dovrebbe essere >= 0); altri valori sono 1 (spostati a partire dalla posizione corrente, positivo o negativo), e 2 (spostati relativamente alla fine del file, solitamente negativo, anche se alcune piattaforme permettono il seek oltre la fine del file).

Notate che il seek nei file bz2 viene emulato, ed a seconda dei parametri l'operazione pu� rivelarsi estremamente lenta.

tell( )
Restituisce la posizione corrente nel file, come intero (pu� essere anche un intero long).

write( data)
Scrive la stringa data sul file. Notate che a causa del buffering, pu� essere necessaria una close() prima che il file sul disco rifletta i dati scritti.

writelines( sequence_of_strings)
Scrive la sequenza di stringhe sul file. Attenzione che nessun fine riga viene aggiunto. La sequenza pu� essere ogni oggetto iterabile che produce stringhe. Ci� equivale a chiamare write() per ogni stringa.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.