为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

临摹微笑 2021-05-30 00:12:00
我正在尝试以另一种方式打印出我的十六进制...首先我转换这个(字节串是变量的名称):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'


查看完整回答
反对 回复 2021-06-01
?
蛊毒传说

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'


查看完整回答
反对 回复 2021-06-01
  • 3 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号