2013-02-13 15 views
6

Sto leggendo un file binario (ogg vorbis) ed estraendo alcuni pacchetti per l'elaborazione successiva. Questi pacchetti sono oggetti python bytes e sarebbe utile leggerli con un metodo "read (n_bytes)". Ora il mio codice è qualcosa di simile:Come leggere i byte come flusso in python 3

packet = b'abcd' 
some_value = packet[0:2] 
other_value = packet[2:4] 

E voglio qualcosa di simile:

packet = b'abcd' 
some_value = packet.read(2) 
other_value = packet.read(2) 

Come posso creare un flusso leggibile da un oggetto byte?

risposta

10

È possibile utilizzare un oggetto simile a file io.BytesIO

>>> import io 
>>> file = io.BytesIO(b'this is a byte string') 
>>> file.read(2) 
b'th' 
>>> file.read(2) 
b'is' 
Problemi correlati