[Python] Maneggiare i byte

michele a nectarine.it michele a nectarine.it
Mer 24 Set 2008 10:31:08 CEST


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



Maggiori informazioni sulla lista Python