Ho bisogno di creare un frame tcp con dati binari grezzi, ma tutti gli esempi e le esercitazioni che ho trovato parlando di byte implicano sempre la conversione da una stringa, e non è quello che mi serve.Python 3 Creazione di una matrice di byte
In breve, ho bisogno di costruire solo un array di byte:
0xA2 0x01 0x02 0x03 0x04
prega di notare che io vengo da C/C++ mondo.
Ho provato questo:
frame = b""
frame += bytes(int('0xA2',16))
frame += bytes(int('0x01',16))
frame += bytes(int('0x02',16))
frame += bytes(int('0x03',16))
frame += bytes(int('0x04',16))
Poi, gettare questa variabile frame da inviare modalità di presa, ma non funziona come ci si aspetta da cornice non contiene quello che voglio ...
So che questa è una domanda molto basilare su Python, quindi se potessi indicarmi la giusta direzione ...
Il problema con il codice precedente è che "byte" si comporta in modo molto diverso se viene fornito un numero intero anziché un elenco. Dovresti usare 'frame + = bytes ([int ('0xa2', 16)])'. –
So che vuoi (ed) farlo dinamicamente, ma ciò che non è completamente chiaro è questo: da dove provengono i byte di input? Leggi la notazione esadecimale da un file di testo? Scrivi ogni byte nel codice sorgente? Li hai in un bytearray che hai ottenuto leggendo il binario dallo stdin? –