python - 打印带有空格的十六进制
问题描述
我正在尝试以另一种方式打印我的十六进制...
首先,我正在转换它(字节串是变量的名称):
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'
解决方案
只需将您的字节数组转换为十六进制字符串,然后用空格连接结果:
>>> d=b'\xff\x00\xff\xff\xff'
>>> " ".join(["{:02x}".format(x) for x in d])
'ff 00 ff ff ff'
请注意," ".join("{:02x}".format(x) for x in d)
这也可以,但强制创建列表更快,如下所述:加入字符串。生成器或列表理解?
在python 2bytes
中,str
你必须使用ord
来获取字符代码
>>> " ".join(["{:02x}".format(ord(x)) for x in d])
推荐阅读
- django - 从我的 django 模型上的每个传感器获取最后一个值
- java - 使用 api 响应图像格式的最佳选择?
- perl - 如何根据模式在 Perl 中分隔数组
- java - 基于括号拆分字符串
- sql-server - 使用 BCP 插入固定值
- iis - 大约 2 周前 IIS 没有启动
- python - 如何从 python 中的 csv 文件以对数比例绘制字符串作为 X 标签
- ruby-on-rails - 如何为 ActiveModel 中的方法使用延迟作业(Ruby on Rails)
- netlogo - Netlogo - 每次打开模型时图形窗口都会增长(补丁大小 < 1)
- react-native - React Native FlatList 滚动事件不起作用