簡體   English   中英

在 Python 中將十六進制字符串作為二進制數據寫入

[英]Write a hex string as binary data in Python

我有一個像FF0000FF這樣的數據字符串,我想將它作為原始 8 位字節11111111 00000000 00000000 11111111寫入文件。 但是,當使用struct.pack或者我得到 0 和 1 的文字 ASCII 版本時,我似乎最終得到了很多數據FF變成FF 00 00 00的方法。

我怎樣才能簡單地取一個十六進制字符串並將其寫為二進制,所以在十六進制編輯器中查看時,您會看到相同的十六進制字符串?

您正在尋找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"\xFF\x00\x00\xFF"
with open("myFileName", "wb") as f: f.write(hex_as_bytes)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM