bitarray0.8.0を使用してバイナリファイルにビットを書き込むプログラムを作成しました。このバイナリファイルにヘッダーを追加して、ファイルの内容を説明したいと思います。
私の問題は、bitarrayのメソッド「fromfile」が必ず最初からファイルの読み取りを開始すると思うことです。読み取りプログラムがヘッダーを取得してから、バイナリ部分(bitarray tofile)のみを含む一時ファイルを書き換えるという回避策を講じることはできますが、あまり効率的ではありません。
これを適切に行う方法はありますか?
私のファイルは次のようになります。ここで、クリアテキストはヘッダーで、バイナリデータはビット配列情報です。
... {(0、0): '0'} {(0、0): '0'} {(0、0):'0'}�������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� ��������..。
編集:
回答を読んだ後、次のことを試しました。
bits = ""
b = bitarray()
with open(Filename, 'rb') as file:
#Get header
byte = file.read(1)
while byte != "":
# read header
byte = file.read(1)
b.fromfile(file)
print b.to01()
print "len(b.to01())", len(b.to01())
長さは0で、「to01()」の出力は空です。ただし、ヘッダーの印刷は問題ありません。