[Python] Maneggiare i byte

Giorgio Zoppi giorgio a apache.org
Mer 24 Set 2008 11:08:31 CEST


Il 24 settembre 2008 10.31,  <michele a nectarine.it> ha scritto:
> Ciao,
> dopo essere stato un fedele devoto al linguaggio Java ho deciso di
> provare il Python.
> Dopo aver provato un po' per conto mio, mi sono nate due domande in testa.
> 1) Spulciando tra i vari tipi predefiniti ho scoperto che non c'è il
> tipo 'byte', come invece accade in Java.
> Come ci si comporta?
> Supponiamo di leggere un file binario:
>
> fd = open('/tmp/foo','rb')
> cont = fd.read()
> fd.close()
>
> ora, utilizzando print str(cont.__class__) (so che è una pessima
> pratica, ma altrimenti come si può sapere di che tipo è la variabile
> che contiene il file letto?), scopro che è un tipo string:
> <type 'str'>
>
> Ora, le mie domande sono: come si possono estrarre 5 byte da quella
> stringa evitando di utilizzare file.seek() e file.read()?
> Nel senso: ho a disposizione un tipo stringa che contiene dei byte di dati.
>   - Come posso ottenere delle 'fette' di dati?
>   - Come posso ottenere la lunghezza in byte di questi dati?
>
> 2)
> Come si può implementare un BitSet? (rif.
> http://java.sun.com/j2se/1.4.2/docs/api/java/util/BitSet.html )
> Ho pensato ad una sottoclasse di list, facendo un overriding dei
> metodi di insert, remove, iterator, etc.
> Voi che ne dite?
>
> Vi ringrazio,
>   Michele
>
I byte possono essere manipolati con:
http://www.python.org/doc/lib/module-struct.html
-- 
Quiero ser el rayo de sol que cada día te despierta
para hacerte respirar y vivir en me.
"Favola -Moda".


Maggiori informazioni sulla lista Python