19

Pythonを使用して、バイトモードでバイト文字列をファイルに書き込むにはどうすればよいですか?

私は持っている:

['0x28', '0x0', '0x0', '0x0']

0x28、0x0、0x0、0x0 をファイルに書き込むにはどうすればよいですか? この文字列を有効なバイトに変換して書き込む方法がわかりません。

4

2 に答える 2

23

bytearray()またはbytes()オブジェクトにマップし、それをファイルに書き込みます。

with open(outputfilename, 'wb') as output:
    output.write(bytearray(int(i, 16) for i in yoursequence))

別のオプションは、binascii.unhexlify()関数を使用して 16 進文字列をbytes値に変換することです。

from binascii import unhexlify

with open(outputfilename, 'wb') as output:
    output.write(unhexlify(''.join(format(i[2:], '>02s') for i in b)))

ここでは、0x最初にその部分を切り取ってから、値を再フォーマットしてゼロで埋め、全体を 1 つの文字列に結合する必要があります。

于 2013-06-27T17:50:33.550 に答える