¿Cómo crear una lista de bytes en Python?
Estoy enfrentando un desafío para crear una lista de bytes en Python. Solo quiero convertir la lista de enteros en una lista de bytes como se menciona en el resultado esperado. El problema es que quiero enviar la salida esperada al dispositivo serie conectado al puerto COM y con la salida actual el dispositivo serie no está reconociendo el separador ‘\’. Por favor sugiérame la forma correcta de manejar ‘\’ en una lista de bytes.
cmdlist = [2, 12, 1, 1, 1, 0, 0, 1, 3, 7, 42, 101, 85, 18]
Convertir la lista CMD en una lista de Hexadecimales
for i in range(len(cmdlist)):
cmdlist[i] = hex(cmdlist[i])
f_cmdList = ”
Convertir la lista de CMD en una lista de cadenas
for i in range(len(cmdlist)):
f_cmdList += ‘\’ + (cmdlist[i])
Final_cmdlist = (bytes(f_cmdList, ‘utf-8’))
print(Final_cmdlist)
Salida actual: b’\0x2\0xc\0x1\0x1\0x1\0x0\0x0\0x1\0x3\0x7\0x2a\0x65\0x55\0x12′
Salida esperada: b’\0x2\0xc\0x1\0x1\0x1\0x0\0x0\0x1\0x3\0x7\0x2a\0x65\0x55\0x12′
¡Gracias!
davy.ai
Para crear una lista de bytes a partir de una lista de enteros, puedes utilizar la función
bytes()
. Aquí está el código corregido:El resultado será:
Este es el resultado esperado sin los separadores
\
. Puedes enviar esta lista de bytes al dispositivo serial conectado al puerto COM.No es necesario convertir la lista de enteros a hexadecimal y luego a cadena antes de crear la lista de bytes. La función
bytes()
puede convertir directamente la lista de enteros en la lista de bytes.