如何在 Windows 上的 python 中获取格式为 b'\xVALUE' 的字节对象?

问题描述 投票:0回答:0

我需要将十进制转换为格式为 b'\xVALUE' 的十六进制字节值。 如果 VALUE 小于 10,则应该用零填充,例如b'\x01'.

我试过以下方法:

chr() 函数:给出预期结果,例如30,但不是像 255 这样的值。

>>> bytes(chr(30), 'utf-8') 
b'\x1e'

>>> bytes(chr(255), 'utf-8') 
b'\xc3\xbf'  (expected: b'\xff')

这个方法我也试过

bytes(hex(VALUE), 'utf-8')

"0x%0.2X" % VALUE

bytes.fromhex(str(high_byte))

然后我试了这个:

hex(VALUE).replace('0x', '\\x').encode().decode('unicode_escape').encode("raw_unicode_escape")

这适用于长度为 2 或更大的十六进制值,但不适用于例如1

hex(1).replace('0x', '\\x').encode().decode('unicode_escape').encode("raw_unicode_escape")

给予

UnicodeDecodeError: 'unicodeescape' codec can't decode bytes in position 0-2: truncated \xXX escape

有没有什么方法可以从 hex() 函数(例如 hex(1) == '0x01')中使用 \x 而不是字节对象中的 0x 获取格式?

python hex byte boolean-logic
© www.soinside.com 2019 - 2024. All rights reserved.