0

HEX データのストリームを含む txt ファイルがあり、ディスクのスペースを節約するためにバイナリ形式に変換したいと考えています。

これは、デコードとバイナリ ストレージをテストするための単純なスクリプトです。

hexstr = "12ab"

of = open('outputfile.bin','wb')

for i in hexstr:
    #this is how I convert an ASCII char to 7 bit representation 
    x = '{0:07b}'.format(ord(i))
    of.write(x)

of.close()

outputfile.bin のサイズは 28 ビットですが、結果は 28 バイトです。問題は、x がビット シーケンスではなく文字列であることだと思います。

どうすればいいですか?

前もって感謝します

4

2 に答える 2

0

これは、あなたの望むことですか?「12ab」は と書くべき\x01\x02\x0a\x0bですよね?

import struct

hexstr = "12ab"

of = open('outputfile.bin','w')

for i in hexstr:
    of.write(struct.pack('B', int(i, 16)))

of.close()
于 2013-11-01T13:56:14.497 に答える