|
|
|
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.