如何将十六进制字符串转为bytes格式?解决输出显示不符预期问题
解决Python字节对象打印时ASCII字符替代十六进制的问题
你看到的现象是Python的默认行为:当打印bytes对象时,Python会把可打印的ASCII字符(比如0x2c对应逗号、0x6a对应字母j)直接显示为字符,而不是\x开头的十六进制表示,但字节序列本身是正确的,只是显示格式不同。
如果你需要让每个字节都以\x开头的十六进制格式显示,可以手动格式化每个字节。示例代码如下:
hexstr = "e52c886a88b6f421a9324ea175dc281478f03003499de6162ca72ddacf4b09e0" byte_data = bytes.fromhex(hexstr) # 格式化每个字节为\x开头的十六进制格式 formatted_output = "b'" + ''.join(f'\\x{byte:02x}' for byte in byte_data) + "'" print(formatted_output)
这段代码会遍历byte_data中的每个字节,将其格式化为两位十六进制的字符串(前缀加\x),最后拼接成符合你预期的格式输出。运行后会得到类似这样的结果:
b'\xe5\x2c\x88\x6a\x88\xb6\xf4\x21\xa9\x32\x4e\xa1\x75\xdc\x28\x14\x78\xf0\x30\x03\x49\x9d\xe6\x16\x2c\xa7\x2d\xda\xcf\x4b\x09\xe0'
内容的提问来源于stack exchange,提问作者MHW
相关产品推荐
相关产品推荐

