string - libreria - PySerial y readline() devuelven cadena binaria-¿convertir a cadena alfanumérica regular?
serial port python windows (1)
La solución más rápida será usar un módulo de python llamado binascii que tiene una selección de funciones para convertir el string binario en una cadena de caracteres: http://docs.python.org/2/library/binascii.html
EDITAR: El b significa que es una matriz de bytes y no una cadena literal. La forma correcta de convertir la matriz de bytes a una cadena literal será usar la función str ():
str (b''1234, asdf, 456, jkl '','' ascii ''). split (",")
esto le da el resultado que desea: [''1234'', ''asdf'', ''456'', jkl '']
¡Espero que eso ayude!
Tengo un problema con PySerial y Python (3.3): el código que estoy ejecutando (por ahora, este es solo un caso de prueba) es el siguiente:
ser = serial.Serial(''/dev/ttyACM0'', 115200)
result = ser.readline()
parsed = result.split(",")
que da el siguiente error:
TypeError: type str doesn''t support the buffer API
¿Cuál es mi estúpido error? Creo que he rastreado esto al hecho de que la línea de lectura de PySerial está devolviendo una cadena binaria (¿nueva en Python 3?) Y que la operación de cadena "split" está fallando cuando se ejecuta contra una cadena binaria; funciona bien si ejecuta esto:
''1234, asdf, 456, jkl''.split(",")
Lo que da lo esperado:
[''1234'', ''asdf'', ''456'', jkl'']
Pero luego corriendo:
b''1234, asdf, 456, jkl''.split(",")
da el error de arriba ¿Hay un método de lectura diferente para usar? ¿debería codificar el mío con la lectura (y solo leer hasta que vea / r / n) o puedo convertir fácilmente a una cadena que satisfaga str.isalnum ()? ¡Gracias!