Python 二进制转换为十六进制

2023-12-03

我正在尝试将 python 中的二进制文件(gzipped 协议缓冲区对象)转换为字符串转义方式的十六进制字符串(例如 \xFA\x1C ..)。

我都尝试过

repr(<mygzipfileobj>.getvalue())

<mygzipfileobj>.getvalue().encode('string-escape')

在这两种情况下,我最终都会得到一个不仅仅由十六进制字符组成的字符串。

\x86\xe3$T]\x0fPE\x1c\xaa\x1c8d\xb7\x9e\x127\xcd\x1a.\x88v ...

如何实现一致的十六进制转换,其中每个字节实际上都转换为 \xHH 格式? (其中 H 代表有效的十六进制字符 0-9A-F)


The \xhh您经常看到的格式是调试辅助,输出repr()应用于具有非 ASCII 代码点的字符串。任何 ASCII 代码点都保留在原处,以留下可读信息。

如果你必须有一个字符串all字符替换为\xhh转义,您需要手动执行此操作:

''.join(r'\x{0:02x}'.format(ord(c)) for c in value)

如果您需要围绕该引号,您也需要手动添加:

"'{0}'".format(''.join(r'\x{:02x}'.format(ord(c)) for c in value))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 二进制转换为十六进制 的相关文章

随机推荐