異なるタイプの一連の値を表す長い 16 進文字列があります。生データから各値を抽出できるように、この 16 進文字列を または に変換する必要がありますbytes
。bytearray
どうすればいいでしょうか?
たとえば、文字列は"ab"
バイトb"\xab"
または同等のバイト配列に変換する必要があります。 より長い例:
>>> # what to use in place of `convert` here?
>>> convert("8e71c61de6a2321336184f813379ec6bf4a3fb79e63cd12b")
b'\x8eq\xc6\x1d\xe6\xa22\x136\x18O\x813y\xeck\xf4\xa3\xfby\xe6<\xd1+'
ベストアンサー1
16進文字列が次のようなものだとします
>>> hex_string = "deadbeef"
これをバイト配列に変換します (Python 3 および 2.7):
>>> bytearray.fromhex(hex_string)
bytearray(b'\xde\xad\xbe\xef')
それをバイトオブジェクトに変換します (Python 3):
>>> bytes.fromhex(hex_string)
b'\xde\xad\xbe\xef'
bytes
は の不変バージョンであることに注意してくださいbytearray
。
それを文字列に変換します (Python ≤ 2.7):
>>> hex_data = hex_string.decode("hex")
>>> hex_data
"\xde\xad\xbe\xef"