如何打印字符串的字节表示?

How to print byte representation of a string?

所以我有一个像 "abcd" 这样的字符串,我想将它转换成字节并打印它。

我试过print(b'abcd'),它打印的完全是b'abcd',但我想要'\x61\x62\x63\x64'

是否有单一功能可用于此目的,还是我必须将 unhexlify 与 join 一起使用?

注意:这是我实际操作的一个简化示例。我需要上述表示形式进行正则表达式搜索。

您可以像这样获取字符串的十六进制值:

string = "abcd"

print(".".join(hex(ord(c))[2:] for c in string))

没有一个函数可以做到这一点,因此您需要手动进行格式化:

s = 'abcd'
print(r'\x' + r'\x'.join(f'{b:02x}' for b in bytes(s, 'utf8')))

输出:

\x61\x62\x63\x64