我想将字符串编码为字节。
要转换为再见,我使用了byte.fromhex()
>>> byte.fromhex('7403073845')
b't\x03\x078E'
但是它显示了一些字符。
如何将其显示为如下所示的十六进制?
b't\x03\x078E' => '\x74\x03\x07\x38\x45'
最佳答案
Python repr
不能更改。如果您想做这样的事情,您需要自己做; bytes
对象正在尝试最小化喷出,而不是为您格式化输出。
如果要这样打印,可以执行以下操作:
from itertools import repeat
hexstring = '7403073845'
# Makes the individual \x## strings using iter reuse trick to pair up
# hex characters, and prefixing with \x as it goes
escapecodes = map(''.join, zip(repeat(r'\x'), *[iter(hexstring)]*2))
# Print them all with quotes around them (or omit the quotes, your choice)
print("'", *escapecodes, "'", sep='')
输出完全符合您的要求:
'\x74\x03\x07\x38\x45'