是否有办法打印python3字节作为十六进制字符串没有ascii转换和不使用循环?


buf = b"x00xddx41"
print(str(buf))

给 x00 xddA。

我需要'x00xddx41'。

基本上显示所有字节的十六进制值,即使存在ASCII字符而没有循环或外部模块。只是想知道这是否可能与任何内置Python3函数。

我当前的代码是"".join(["\x" + hex(x)[2:] for x in buf])。我试图找到一个内置的替代方案,如果它存在于Python 3或任何更简单的替代方案。

没有你想要的内置函数

你认为什么是"非循环"?下面re.sub的非Python实现中有一个隐藏循环,但是没有Python循环。

import re
def hexify(s):
return "b'" + re.sub(r'.', lambda m: f'\x{ord(m.group(0)):02x}', buf.decode('latin1')) + "'"
buf = b'x00xddx41'
print(hexify(buf))

输出:

b'x00xddx41'

相关内容

  • 没有找到相关文章

最新更新