我正在尝试以另一种方式打印出我的十六进制...首先我转换这个(字节串是变量的名称):b'\xff\x00\xff\xff\xff'十六进制,print(bytestring.hex())输出:ff00ffffff但我一直在尝试使它输出以下内容:ff 00 ff ff ff但没有运气。有什么建议么?干杯!更新:stringdata = f.read(5)print(stringdata)#b'\xff\x00\xff\xff\xff'readHex = " ".join(["{:02x}".format(x) for x in stringdata.hex()])# ValueError: Unknown format code 'x' for object of type 'str'
3 回答

桃花长相依
TA贡献1860条经验 获得超8个赞
在 Python 3.8+ 中,hex函数有一个可选的参数拆分器。
>>> print(b'\xff\x00\xff\xff\xff'.hex(' '))
'ff 00 ff ff ff'
您可以用所需的任何字符分割十六进制字符串。
>>> print(b'\xff\x00\xff\xff\xff'.hex(':'))
'ff:00:ff:ff:ff'

蛊毒传说
TA贡献1895条经验 获得超3个赞
好像社区不同意这是骗子,所以我将发表评论作为答案。
您可以转换为字符串:
bytestring = str(b'\xff\x00\xff\xff\xff').encode('hex')
print(bytestring)
#ff00ffffff
然后以2的块为单位对其进行迭代,并用空格将这些块连接起来:
print(" ".join([bytestring[i:i+2] for i in range(0, len(bytestring), 2)]))
#'ff 00 ff ff ff'
添加回答
举报
0/150
提交
取消