Decodificar cadena hexagonal en Python 3

En Python 2, convertir la forma hexadecimal de una cadena al unicode correspondiente fue sencillo:

comments.decode("hex") 

donde la variable ‘comentarios’ es parte de una línea en un archivo (no es necesario convertir el rest de la línea, ya que está representada solo en ASCII).

Ahora, en Python 3, sin embargo, esto no funciona (supongo que debido a los bytes / cadena frente a la cadena / unicode. Creo que debería haber una sola línea en Python 3 para hacer lo mismo, en lugar de leer la línea completa como una serie de bytes (que no quiero hacer) y luego convertir cada parte de la línea por separado. Si es posible, me gustaría leer la línea completa como una cadena Unicode (porque el rest de la línea está en Unicode) y solo convierte esta parte de una representación hexadecimal.

Related of "Decodificar cadena hexagonal en Python 3"

Algo como:

 >>> bytes.fromhex('4a4b4c').decode('utf-8') 'JKL' 

Simplemente ponga la encoding real que está utilizando.

 import codecs decode_hex = codecs.getdecoder("hex_codec") # for an array msgs = [decode_hex(msg)[0] for msg in msgs] # for a string string = decode_hex(string)[0]