如何在Python中将以0开头的十六进制字符串转换为具有一定长度的字节

时间:2018-10-25 13:19:33

标签: python parsing

我要转换:

'01' -> \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
'0001' -> \x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

我尝试过这样的事情:

int(data,16).to_bytes(16, byteorder='little')

,但是当字符串以'00'开头时,此方法不起作用。还有其他方法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用bytes.fromhexbytes.ljust

>>> bytes.fromhex('01').ljust(16, b'\0')
b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> bytes.fromhex('0001').ljust(16, b'\0')
b'\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'