代码之家  ›  专栏  ›  技术社区  ›  Soumil Deshpande

将十六进制字符串转换为可读输出

  •  0
  • Soumil Deshpande  · 技术社区  · 6 年前

    我从另一个程序接收值“\E8\x03”到python程序中,它实际上是值“1000”,即0x3E8。如何从该输入字符串进行此转换?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Francisco    6 年前

    首先,让我们清理字符串:

    >>> clean_hex = re.sub(r'\\x?([a-f0-9]{2})', lambda x: chr(int(x.group(1), 16)), r"\E8\x03", flags=re.I)
    >>> clean_hex
    '\xe8\x03'
    

    然后我们可以使用struct模块:

    >>> struct.unpack('<H', clean_hex)[0]
    1000