python中16进制字符串转换为对应二进制流
写代码时遇到了一个问题:
获得一个16进制表示的字符串,它的type是str,我们又不能在它的前面直接加b,如何将其转换为对应二进制流呢?
后来找到了解决办法,主要是使用eval函数。
s = '\\xe5\\xa4\\xa7\\xe4\\xb9\\x94' # 或 s = r'\xe5\xa4\xa7\xe4\xb9\x94'
print(s)
print(type(s))
print(s.decode())
输出为:
\xe5\xa4\xa7\xe4\xb9\x94
<class 'str'>
AttributeError: 'str' object has no attribute 'decode'
使用eval函数后:
s = r'\xe5\xa4\xa7\xe4\xb9\x94'
b = eval('b' + '\'' + s + '\'')
print(b)
print(type(b))
print(b.decode())
输出为:
b'\xe5\xa4\xa7\xe4\xb9\x94'
<class 'bytes'>
大乔