当数字中存在Alphabates(A,B,C,D,E,F)时,bytearray.fromhex不会转换

时间:2017-09-06 09:03:55

标签: python-3.x

我正在尝试使用

转换十六进制值的文本文件数据(以ANSI编码)

line = bytearray.fromhex(x)

但它显示以下错误。

  

line = bytearray.fromhex(x)ValueError:找到非十六进制数   在fromhex()arg在第5位

如何实现正确的转换?请给我一个解决方案。

1 个答案:

答案 0 :(得分:-1)

您必须先将文本编码为十六进制格式。您可以使用encode功能。

  

方法encode()返回字符串的编码版本。默认编码是当前的默认字符串编码。可以给出错误以设置不同的错误处理方案。

试试这个:

line = bytearray.fromhex(x.encode("hex"))

修改

对于Python 3.4及更高版本,您需要通过编解码器模块和hex_codec编解码器:

line = bytearray.fromhex(codecs.encode(x, 'hex_codec'))