gpt4 book ai didi

python - 将字节打印为十六进制

转载 作者:行者123 更新时间:2023-11-30 23:02:02 25 4
gpt4 key购买 nike

我想将字符串编码为字节。

为了转换为再见,我使用了byte.fromhex()

>>> byte.fromhex('7403073845')
b't\x03\x078E'

但它显示了一些字符。

如何将其显示为如下所示的十六进制?

b't\x03\x078E' => '\x74\x03\x07\x38\x45'

最佳答案

I want to encode string to bytes.

bytes.fromhex() 已经将十六进制字符串转换为字节。不要混淆对象及其文本表示 - REPL 使用 sys.displayhook,它使用 repr()显示 ascii 可打印范围内的字节作为相应的字符,但它不会以任何方式影响值:

>>> b't' == b'\x74'
True

Print bytes to hex

要将字节转换回十六进制字符串,您可以从 Python 3.5 开始使用 bytes.hex 方法:

>>> b't\x03\x078E'.hex()
'7403073845'

在较旧的 Python 版本上,您可以使用 binascii.hexlify():

>>> import binascii
>>> binascii.hexlify(b't\x03\x078E').decode('ascii')
'7403073845'

How can it be displayed as hex like following? b't\x03\x078E' => '\x74\x03\x07\x38\x45'

>>> print(''.join(['\\x%02x' % b for b in b't\x03\x078E']))
\x74\x03\x07\x38\x45

关于python - 将字节打印为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34690025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com