Python convertir str="\\x" a bytes=b'\x' ??

Foro FRCUBA

Python convertir str="\\x" a bytes=b'\x' ?? (Leído 107 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado

cm5adr

  • *
  • Usuario Jr
  • Mensajes: 48
  • Sexo: Masculino
    • Ver Perfil
Python convertir str="\\x" a bytes=b'\x' ??
24 de Enero de 2018, 03:49:12 pm
Saludos;
Tengo el string:   
 a= “\\xc0\\x00\\x86\\x9ej\\xa4\\xa6@\\xe0\\x86\\x9aj\\x82\\x88\\xa4aS\\xco”
con doble barra inversa para que quede así:
\xc0\x00\x86\x9ej\xa4\xa6@\xe0\x86\x9aj\x82\x88\xa4aS\xco   
 y no de error por ‘unicodeescape’.
Este string lo tengo que convertir en bytes  (esta fue la función que encontré ) :
B=a.encode()
Pero queda así:
b'\\xc0\\x00\\x86\\x9ej\\xa4\\xa6@\\xe0\\x86\\x9aj\\x82\\x88\\xa4aS\\xco'
y debería ser solo con una barra invertida.
Cómo puedo solucionar esto o cómo puedo enviar un string por un socket :
…..
 sock.send(“\xc0\x00\x86\x9ej\xa4\xa6@\xe0\x86\x9aj\x82\x88\xa4aS\xco”)
en Python 3.6.3   ?
Soy bastante nuevo en Python ,por lo que me disculpo si he escrito alguna barbaridad.


« Última modificación: 25 de Enero de 2018, 10:52:32 am por cm7ohm »

Desconectado

cm5adr

  • *
  • Usuario Jr
  • Mensajes: 48
  • Sexo: Masculino
    • Ver Perfil
#1 Re:Python convertir str="\\x" a bytes=b'\x' ??
29 de Enero de 2018, 11:47:36 am
Un colega de otro foro me ayudó con esto:

a=b"\x84\x8a\x82\x86\x9e\x9c"

def dec(dato=b''):
    result=[]
    for byte in dato:
        result.append(chr(byte//2))
    return result

def enc(dato=""):
    result=[]
    for x in dato:
        result.append(bytes([ord(x)*2]))
    return b''.join(result)


print(dec(a))
print(enc("BEACON"))

Tratar los bytes desde un string era un error .Espero que le sirva de ayuda a alguien .73
« Última modificación: 16 de Febrero de 2018, 04:40:13 pm por cm7ohm »