2011-08-27 13 views

risposta

9

Utilizzare the int function con un base di 2 per leggere un valore binario come numero intero.

n = int('01010101', 2) 

Python 2 utilizza stringhe per gestire i dati binari, quindi si può usare the chr() function per convertire il numero intero in una stringa un byte.

data = chr(n) 

Python 3 gestisce binari e testo in modo diverso, quindi è necessario utilizzare the bytes type invece. Questo non ha un equivalente diretto alla funzione chr(), ma il costruttore bytes può prendere un elenco di valori di byte. Inseriamo n in un array di un elemento e lo convertiamo in un oggetto bytes.

data = bytes([n]) 

Una volta che avete la vostra stringa binaria, è possibile aprire un file in modalità binaria e scrivere i dati ad esso come questo:

with open('out.bin', 'wb') as f: 
    f.write(data) 
+0

Abbastanza chiaro e completo. Grazie – xiaohan2012

+1

Per python 2.6+, probabilmente stai meglio usando 'bytearray ([n])'. [Vedi doc] (http://docs.python.org/2/library/functions.html#bytearray). – ford

Problemi correlati