0

Python でバイナリを操作する簡単な方法はありますか?

受信しているデータのファイル (1 と 0) があり、それをスキャンしてバイナリで特定のパターンを探したいと考えています。私のシステムのために、16進数またはASCIIに変換するときにすべてが失われる可能性があるため、1ビットほどずれている可能性があるため、バイナリでなければなりません。

たとえば、ファイルを開き、「0001101010111100110」またはバイナリの文字列を検索して、ファイルに存在するかどうか、どこにあるかなどを教えてもらいたいと思います。

これは実行可能ですか、それとも別の言語で作業したほうがよいでしょうか?

4

2 に答える 2

4

バイト文字列を「0」と「1」の文字列に変換するには、次のワンライナーを使用できます。

bin_str = ''.join(bin(0x100 + ord(b))[-8:] for b in byte_str)

それをファイルを開いて読み取ることと組み合わせます。

with open(filename, 'rb') as f:
    byte_str = f.read()

これは単純な文字列検索です。

if '0001101010111100110' in bin_str:
于 2013-04-17T22:32:47.240 に答える
0

あなたは別の言語に取り組んだほうがよいでしょう。Python で実行できます (たとえば、file = open("file", "wb") を使用する場合)

(bを追加するとバイナリで開きます)、次に単純な検索を使用しますが、正直なところ、Cなどの低レベル言語で行う方がはるかに簡単で高速です.

于 2013-04-17T22:31:22.100 に答える