7.19 tarfile -- Leggere e scrivere file di archivio tar

Nuovo nella versione 2.3.

Il modulo tarfile rende possibile le lettura e la creazione degli archivi tar. Ecco alcune caratteristiche:

open( [name[, mode [, fileobj[, bufsize]]]])
Restituisce un oggetto TarFile per il percorso dei nomi name. Per informazioni dettagliate sugli oggetti TarFile, leggere Oggetti TarFile (sezione 7.19.1).

mode deve essere una stringa nella forma 'mododelfile[:compressione]', il valore predefinito è 'r'. Ecco una lista completa delle combinazioni di mode:

mode  azione 
'r' Apre in lettura con compressione trasparente (raccomandato).
'r:' Apre in lettura esclusivamente senza compressione.
'r:gz' Apre in lettura con compressione gzip.
'r:bz2' Apre in lettura con compressione bzip2.
'a' or 'a:' Apre per l'aggiunta senza compressione.
'w' or 'w:' Apre in scrittura non compressa.
'w:gz' Apre in scrittura compressa gzip.
'w:bz2' Apre in scrittura compressa bzip2.

Notare che 'a:gz' o 'a:bz2' non sono possibili. Se mode non è adatto per aprire un certo file (compresso) in lettura, verrà sollevata un'eccezione ReadError. Usare mode 'r' per evitarlo. Se un certo metodo di compressione non è supportato, verrà sollevata un'eccezione CompressionError.

Se viene specificato fileobj, esso viene usato come alternativa ad un oggetto file aperto per nome name.

Per scopi speciali, esiste un secondo formato per mode: 'mododelfile|[compressione]'. open() restituirà un oggetto TarFile che elabora i suoi dati come un flusso di blocchi. Sul file non verrà eseguito alcun seek casuale. Se passato, fileobj può essere qualsiasi oggetto che abbia un metodo read() o write() (a seconda della modalità prescelta mode). bufsize specifica la dimensione dei blocchi e il valore predefinito è 20 * 512 byte. Usare questa variante in combinazione con ad esempio sys.stdin, un oggetto file socket od un dispositivo a nastro. In ogni caso, un oggetto TarFile del genere è limitato per il fatto che non permette un accesso casuale, vedere ``Esempi'' (sezione 7.19.3). Ecco le alternative dei modi disponibili adesso:

Modalità  azione 
'r|' Apre un flusso di blocchi tar non compressi in lettura.
'r|gz' Apre un flusso compresso gzip in lettura.
'r|bz2' Apre un flusso compresso bzip2 in lettura.
'w|' Apre un flusso non compresso in scrittura.
'w|gz' Apre un flusso compresso gzip in scrittura.
'w|bz2' Apre un flusso compresso bzip2 in scrittura.

class TarFile
Classe per leggere e scrivere archivi tar. Non usare questa classe direttamente, meglio invece usare open(). Leggere ``Oggetti TarFile'' (sezione 7.19.1).

is_tarfile( name)
Restituisce True se name è un file archivio tar, del tipo che può essere letto dal modulo tarfile.

class TarFileCompat( filename[, mode[, compression]])
Classe per l'accesso limitato agli archivi tar con interfaccia simile a zipfile. Consultare la documentazione di zipfile per ulteriori dettagli. compression deve essere una delle seguenti costanti:
TAR_PLAIN
Costante per un archivio tar non compresso.
TAR_GZIPPED
Costante per un archivio tar compresso con gzip.

exception TarError
Classe base per tutte le eccezioni di tarfile.

exception ReadError
Viene sollevata quando un archivio tar viene aperto, ma non può essere gestito dal modulo tarfile o per qualche ragione non è valido.

exception CompressionError
Viene sollevata quando un metodo di compressione non è supportato o quando i dati non possono essere decodificati in modo appropriato.

exception StreamError
Viene sollevata dalle limitazioni tipiche per gli oggetti TarFile simil-flusso.

exception ExtractError
Viene sollevata per errori non fatali durante l'utilizzo di extract(), ma solo se TarFile.errorlevel == 2.

Vedete anche:

Modulo zipfile:
Documentazione del modulo standard zipfile.

Manuale tar della GNU, Standard Section
Documentazione per i file di archivio tar, incluse le estensioni tar della GNU.



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