 |
 |
 |
La libreria di riferimento di Python |
 |
 |
 |
Questo modulo fornisce un'interfaccia per leggere i file che usano
spezzoni.14.1 Questo
formato viene usato nei file con formato
Audio
Interchange File Format (AIFF/AIFF-C) e nel formato
Real Media File Format
(RMFF). Il formato audio WAVE è strettamente correlato e si può
leggere usando questo modulo.
Uno spezzone ha la seguente struttura:
| 0 |
4 |
Chunk ID |
| 4 |
4 |
Dimensione dello spezzone nell'ordine big-endian, non
include l'header |
| 8 |
n |
Dati in bytes, dove n è la dimensione
fornita nel precedente campo |
| 8 + n |
0 o 1 |
Blocco di byte necessario se n è
dispari e viene usato l'allineamento degli spezzoni |
L'ID è una stringa di 4 byte che identifica il tipo di spezzone.
La dimensione del campo (un valore a 32 bit, codificato usando
big-endian) fornisce la dimensione dei dati dello spezzone, esclusi
gli 8 byte dell'intestazione.
Di solito un file di tipo IFF si compone di uno o più chunk. L'uso
proposto della classe Chunk qui definita è istanziare
un'istanza all'avvio di ogni spezzone e leggere dall'istanza prima che
raggiunga la fine, fatto questo, può essere creata una nuova istanza.
Giunti alla fine del file, la creazione di una nuova
istanza fallirà, sollevando l'eccezione EOFError.
| class Chunk( |
file[, align, bigendian, inclheader]) |
-
Classe che rappresenta uno spezzone. L'argomento file viene
atteso come un oggetto simile a file. Un'istanza di questa classe è
specificatamente permessa. Il solo metodo richiesto è
read(). Se i metodi seek() e tell() sono
presenti e non sollevano eccezioni, allora significa che si aspettano
di non dovere alterare l'oggetto. Se l'argomento facoltativo
align è vero, si presuppone che gli spezzoni siano allineati sul
limite dei 2 byte. Se align è falso, non si presuppone alcun
allineamento. Il valore predefinito è vero. Se l'argomento
facoltativo bigendian è falso, si assume che la dimensione dello
spezzone sia ordinata in little-endian. Questo è necessario per i
file audio WAVE. Il valore predefinito è vero. Se l'argomento
facoltativo inclheader è vero, la dimensione fornita
nell'intestazione dello spezzone include la misura dell'intestazione.
Il valore predefinito è falso.
Un oggetto Chunk supporta i seguenti metodi:
-
Restituisce il nome (ID) dello spezzone. Questo è il primo dei 4 byte
dello spezzone.
-
Restituisce la dimensione dello spezzone.
-
Chiude e passa alla fine dello spezzone. Questo non chiude i file
sottostanti.
I restanti metodi sollevano un'eccezione IOError se
vengono chiamati dopo aver chiamato il metodo close().
-
Restituisce
False.
-
Imposta la posizione corrente dello spezzone. L'argomento
whence è facoltativo ed ha come valore predefinito lo
0
(posizionamento assoluto nel file); altri valori sono 1 (cerca
relativamente alla posizione corrente) e 2 (cerca relativamente
alla fine del file). Non viene restituito alcun valore. Se il file
sottostante non permette la ricerca con seek, è permessa la sola
ricerca di dati successivi al posizionamento nel file.
-
Restituisce la corrente posizione nello spezzone.
-
Legge la maggiore parte della dimensione, size, dello spezzone
(meno se la lettura raggiunge la fine dello spezzone prima di
ottenerne la dimensione size in byte). Se l'argomento
size è negativo o viene omesso, legge tutti i dati prima della
fine dello spezzone. I byte vengono restituiti come un oggetto
stringa. Viene restituita una stringa vuota quando viene raggiunta la
fine dello spezzone.
-
Salta alla fine dello spezzone. Tutte le chiamate a read()
per lo spezzone restituiranno
''. Se non si è interessati al
contenuto dello spezzone, questo metodo dovrebbe essere chiamato in
modo da far puntare il file all'inizio del prossimo spezzone.
Footnotes
- ...
spezzoni.14.1
- ``EA IFF 85'' Standard for Interchange Format
Files, di Jerry Morrison, Electronic Arts, January 1985.
 |
 |
 |
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.