7.19.1 Oggetti TarFile

L'oggetto TarFile fornisce un'interfaccia ad un archivio tar. Un archivio tar è una sequenza di blocchi. Un membro d'archivio (un file immagazzinato) è composto da un blocco d'intestazione seguito dai blocchi dei dati. È possibile immagazzinare un file in un archivio tar più volte. Ogni membro dell'archivio viene rappresentato da un oggetto TarInfo, leggere Oggetti TarInfo (sezione 7.19.2) per dettagli.

class TarFile( [name [, mode[, fileobj]]])
Apre un archivio tar (non compresso) di nome name. mode è 'r' per leggere da un archivio esistente, 'a' per aggiungere dati ad un file esistente o 'w' per crearne uno nuovo sovrascrivendone uno esistente. mode come valore predefinito ha 'r'.

Se fileobj viene passato, viene usato per leggere o scrivere dati. Se può essere determinato, mode viene sovrascritto dal modo di fileobj.

Note: fileobj non viene chiuso quando viene chiuso TarFile.

open( ...)
Costruttore alternativo. La funzione open() a livello modulo è in realtà una scorciatoia per questo metodo di classe. Vedere la sezione 7.19 per dettagli.

getmember( name)
Restituisce un oggetto TarInfo per il membro name. Se name non può essere trovato nell'archivio, viene sollevata un'eccezione KeyError.
Note: Se un membro appare più volte in un archivio, la sua ultima occorrenza viene considerata come la versione più aggiornata.

getmembers( )
Restituisce i membri dell'archivio come una lista di oggetti TarInfo. La lista ha lo stesso ordine dei membri nell'archivio.

getnames( )
Restituisce i membri come lista dei loro nomi. Ha lo stesso ordine della lista restituita da getmembers().

list( verbose=True)
Stampa un indice verso sys.stdout. Se verbose è False, vengono stampati solo i nomi dei membri. Se è True, viene prodotto un output simile a quello di ls -l.

next( )
Restituisce il prossimo membro dell'archivio come oggetto TarInfo, quando TarFile viene aperto in lettura. Restituisce None se non ce ne sono altri disponibili.

extract( member[, path])
Estrae un membro dall'archivio nella directory corrente, usando il suo nome completo. Le sue informazioni di file vengono estratte nel modo più accurato possibile. member può essere un nome di file od un oggetto TarInfo. É possibile specificare una directory differente usando path.

extractfile( member)
Estrae member dall'archivio come un oggetto file. member può essere un nome di file od un oggetto TarInfo. Se member è un file regolare, viene restituito un oggetto simil-file. Se member è un collegamento, viene costruito un oggetto simil-file dall'obbiettivo del collegamento. Se member non è nessuno dei precedenti, viene restituito None.
Note: L'oggetto simil-file è in sola lettura e fornisce i seguenti metodi: read(), readline(), readlines(), seek() e tell().

add( name[, arcname[, recursive]])
Aggiunge il file name all'archivio. name può essere ogni genere di file (directory, fifo, link simbolico, etc.). Se passato, arcname specifica un nome alternativo per il file nell'archivio. Se non specificato, le directory vengono aggiunte ricorsivamente. Ciò può essere evitato impostando recursive a False; il suo valore predefinito è True.

addfile( tarinfo[, fileobj])
Aggiunge l'oggetto tarinfo della classe TarInfo all'archivio. Se fileobj viene passato, vengono letti tarinfo.size byte da esso e aggiunti all'archivio. Si possono creare oggetti TarInfo usando gettarinfo().
Note: Sulle piattaforme Windows, fileobj dovrebbe sempre essere aperto in modalità 'rb', per evitare irritazioni riguardo la dimensione del file.

gettarinfo( [name[, arcname[, fileobj]]])
Crea un oggetto TarInfo per il file name o l'oggetto file fileobj (usando os.fstat() sul suo descrittore di file). Si possono modificare alcuni attributi di TarInfo prima di aggiungerlo usando addfile(). Se passato, arcname specifica un nome alternativo per il file nell'archivio.

close( )
Chiude il TarFile. In modalità di scrittura, due blocchi zero finali vengono aggiunti all'archivio.

posix=True
Se vero, crea un archivio conforme a POSIX 1003.1-1990. Le estensioni GNU non vengono usate, visto che non sono parte dello standard POSIX. Questo limita la lunghezza dei nomi dei file a 256 caratteri e i nomi dei collegamenti a 100 caratteri. Se il percorso dei nomi eccede questo limite, viene sollevata un'eccezione ValueError. Se falso, crea un archivio tar GNU compatibile. Non sarà compatibile con POSIX, ma potrà immagazzinare percorsi di lunghezza illimitata.

dereference=False
Se falso, aggiunge collegamenti simbolici e hard all'archivio. Se vero, aggiunge il contenuto del file obbiettivo all'archivio. Questa funzionalità non ha effetto su sistemi che non supportano i link simbolici.

ignore_zeros=False
Se falso, tratta un blocco vuoto come fine dell'archivio. Se vero, ignora i blocchi vuoti (e non validi) e prova ad ottenere più membri possibili. Questo risulta utile solo per archivi concatenati o danneggiati.

debug=0
Può essere impostato da 0 (nessun messaggio di debug) a 3 (tutti i messaggi di debug). I messaggi vengono scritti su sys.stdout.

errorlevel=0
Se 0, il valore predefinito, tutti gli errori vengono ignorati durante l'utilizzo di extract(). Nondimeno, essi appaiono come messaggi di errore nell'output di debug, quando il debugging è abilitato. Se 1, tutti gli errori fatali vengono sollevati come eccezioni OSError o IOError. Se 2, per tutti gli errori non fatali vengono sollevate eccezioni TarError.

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