如何从长hexstring创buildpython字节对象?
我在一个string中有很长的hex数字序列,比如
000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44
只有更长的,几千字节。 有没有一种内置的方式来将其转换为Python 2.6 / 3中的字节对象?
适用于Python 2.7及更高版本,包括python3:
result = bytearray.fromhex('deadbeef')
注意: Python 2.6中的bytearray.fromhex()
函数似乎存在一个错误。 python.org文档声明该函数接受一个string作为参数,但是当应用时,会引发以下错误:
>>> bytearray.fromhex('B9 01EF') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: fromhex() argument 1 must be unicode, not str`
你可以用hex编解码器来做到这一点。 即:
>>> s='000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44' >>> s.decode('hex') '\x00\x00\x00\x00\x00\x00HB@\xfa\x06=\xe5\xd0\xb7D\xad\xbe\xd6:\x81\xfa\xea9\x00\x00\xc8B\x86@\xa4=P\x05\xbdD'
result = bytes.fromhex(some_hex_string)
尝试binascii模块
from binascii import unhexlify b = unhexlify(myhexstr)
import binascii binascii.b2a_hex(obj)