猿问

打印十六进制,中间有空格

我正在尝试以另一种方式打印出我的十六进制...


首先我转换这个(字节串是变量的名称):


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'


临摹微笑
浏览 292回答 3
3回答

桃花长相依

在 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'

蛊毒传说

好像社区不同意这是骗子,所以我将发表评论作为答案。您可以转换为字符串: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'
随时随地看视频慕课网APP

相关分类

Python
我要回答