This question already has answers here:
hexadecimal string to byte array in python
                                
                                    (8个答案)
                                
                        
                                2年前关闭。
            
                    
我在python3中有两个bytes类的变量。

print(string1) --> b'2900BCE03604093C000080'
print(bytes.fromhex(string1.decode('utf8'))) --> b')\x00\xbc\xe06\x04\t<\x00\x00\x80'

print(type(string1)) --> <class 'bytes'>
print(type(bytes.fromhex(string1.decode('utf8')))) --> <class 'bytes'>


由于某些十六进制值的ascii解释,因此第二个输出中存在奇数。

我的问题是如何将string1更轻松地转换为第二行的输出。有没有更好的办法?

最佳答案

您可以使用binascii.a2b_hex()函数获取二进制数据的十六进制表示形式:

In [5]: binascii.a2b_hex(s)
Out[5]: b')\x00\xbc\xe06\x04\t<\x00\x00\x80'

10-02 10:35