将ASCII字符转换为十六进制转义字符串

Jac*_*nta 2 python struct

我正在阅读Python的文件.我打开这个文件并使用'rb'来读取字节.当我把它们读出来时,说:

f.read(1)
Run Code Online (Sandbox Code Playgroud)

它会输出这样的东西

b'\x50'
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,当我尝试这样一个更长的字符串时

f.read(24)
Run Code Online (Sandbox Code Playgroud)

我懂了:

b'R\x00S\x00S\x00Q\x00S\x00O\x00N\x00P\x00S\x00M\x00R\x00P\x00
Run Code Online (Sandbox Code Playgroud)

您注意到十六进制中混合了ASCII字符.我希望R显示为\ x52.

我怎么做?

Ign*_*ams 6

print(''.join('\\x%02x' % c for c in B))
Run Code Online (Sandbox Code Playgroud)