python - 字节的可读十六进制转储
问题描述
我想将字节列表转换为十六进制值的字符串。字节列表有点长,所以我希望字节之间有空格以提高可读性。功能hexlify
和hex
工作:
import binascii
a = [1,2,3,4]
s = binascii.hexlify(bytearray(a))
print s
s = bytes(a).hex()
print s
但结果是'01020304'。我想要一个在“01 02 03 04”之类的字节之间有空格的转储。我怎样才能有效地做到这一点?
编辑: 还有一种迭代所有字节的方法。这会有效吗?
s = ' '.join('%02x' % i for i in a)
解决方案
您可以将bytes.hex与分隔符字符串一起使用:
>>> bs = b'Hello world'
>>> bs.hex(sep=' ')
'48 65 6c 6c 6f 20 77 6f 72 6c 64'
推荐阅读
- javascript - javascript 如何识别异步函数
- javascript - p5中的createInput问题
- python - 用于用户功能的 numpy 广播
- python - Python:打破规则..忘记名字..tkinter、Unicode、Utf8、Loops
- python - 如何在 Python 中获取基类的属性?
- android - Undefined References Error OpenCv Android with ndk 18 (c++_static)
- php - Eloquent - 从两个不同的模型中选择一个具有相同名称的列
- ios - 如何使用 Stripe ios SDK 创建 wechatUrl 源?
- spring-mvc - 如何在spring mvc中使用jquery对动态添加的字段进行服务器端验证
- javascript - D3js使y轴高度为100