我有像FF0000FF
这样的数据字符串,我想把它写成文件作为原始的8位字节11111111 00000000 00000000 11111111
。然而,当我使用FF
或者得到0和1的文字ASCII版本时,我似乎最终得到了很多数据FF 00 00 00
变成struct.pack
。
我怎样才能简单地取一个十六进制字符串并将其写为二进制,因此在十六进制编辑器中查看时,您会看到相同的十六进制字符串?
你在找binascii。
binascii.unhexlify(hexstr) 返回十六进制字符串hexstr表示的二进制数据。 该函数与b2a_hex()的反函数。 hexstr必须包含 偶数个十六进制数字(可以是上限或下限) case),否则会引发TypeError。
import binascii
hexstr = 'FF0000FF'
binstr = binascii.unhexlify(hexstr)
在Python 3.x中,您只需在字符串前面使用b前缀,然后将其写入二进制文件,如下所示:
hex_as_bytes = b"FF0000FF"
with open("myFileName", "wb") as f: f.write(hex_as_bytes)