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.