Python 二进制转十六进制
Python binary conversion to hex
我正在尝试以字符串转义方式(例如 \xFA\x1C ..)将 python 中的二进制文件(gzip 协议缓冲区对象)转换为十六进制字符串。 =14=]
我都试过了
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)
您经常看到的 \xhh
格式是一种 调试辅助工具 ,repr()
的输出应用于具有非 ASCII 代码点的字符串。任何 ASCII 代码点都保留在原地,以留下可读信息。
如果您必须将 所有 个字符替换为 \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))
我正在尝试以字符串转义方式(例如 \xFA\x1C ..)将 python 中的二进制文件(gzip 协议缓冲区对象)转换为十六进制字符串。 =14=]
我都试过了
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)
您经常看到的 \xhh
格式是一种 调试辅助工具 ,repr()
的输出应用于具有非 ASCII 代码点的字符串。任何 ASCII 代码点都保留在原地,以留下可读信息。
如果您必须将 所有 个字符替换为 \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))