私の入力ファイルは任意である可能性があるため、使用します
f = open("in-file", 'rb')
チャンクサイズは約 4K バイトなので、
f.read(4096)
私がやりたいことは、ファイルからチャンクごとにチャンクを読み取ることです。さらに、チャンクは実際には $2^15$ ビット (4KB) のシーケンスであるため、チャンクを読み取るときは、さらに計算するためにそれを 10 進数値に変換する必要があります。
たとえば、最初のチャンクの形式が 0000...10 の場合、対応する 10 進数値 (x=2 など) を保持する別の変数が必要です。
文字列の変換からビットのリストへの変換、およびその逆のコードは、チャンクごとにチャンクを読み取るのに役立つことを知っています。
def tobits(s):
result = []
for c in s:
bits = bin(ord(c))[2:]
bits = '00000000'[len(bits):] + bits
result.extend([int(b) for b in bits])
return result
ただし、出力リストを10進数値に変換する方法がわかりません。誰かサンプルコードを教えてもらえますか? ありがとうございました。