python中的十六进制字符串到字节数组

新手上路,请多包涵

我有一个长的十六进制字符串,代表一系列不同类型的值。我希望将此十六进制字符串转换为字节数组,以便我可以将每个值移出并将其转换为正确的数据类型。

原文由 Richard 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 536
2 个回答

假设您的十六进制字符串类似于

>>> hex_string = "deadbeef"

将其转换为字节数组(Python 3 和 2.7):

 >>> bytearray.fromhex(hex_string)
bytearray(b'\xde\xad\xbe\xef')

将其转换为字节对象(Python 3):

 >>> bytes.fromhex(hex_string)
b'\xde\xad\xbe\xef'

请注意, bytesbytearray 的不可变版本。

将其转换为字符串(Python ≤ 2.7):

 >>> hex_data = hex_string.decode("hex")
>>> hex_data
"\xde\xad\xbe\xef"

原文由 tzot 发布,翻译遵循 CC BY-SA 4.0 许可协议

bytearray 中有一个内置函数可以执行您想要的操作。

 bytearray.fromhex("de ad be ef 00")

它返回一个字节数组,并读取带或不带空格分隔符的十六进制字符串。

原文由 kugg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题