0

ファイルが.binあり、16 進データを単純にバイト反転したい。たとえば@ 0x10、それが読むAD DE DE C0、それを読んでほしいとしましょうDE AD C0 DE

これを行う簡単な方法があることは知っていますが、私は初心者で、Python を学習したばかりで、日常業務を支援するためにいくつかの簡単なプログラムを作成しようとしています。だけでなく、ファイル全体をこの方法で変換したいと思います0x10

開始オフセットで変換し0x000000、ブロックサイズ/長さは 1000000 です。

編集:

ここに私のコードがあります。私がどこを台無しにしているか教えてください。

def main():
    infile = open("file.bin", "rb")
    new_pos = int("0x000000", 16)
    chunk = int("1000000", 16)
    data = infile.read(chunk)
    save(data)

def save(data):
    with open("reversed", "wb") as outfile:
        outfile.write(data)

main()

CDAB から ABCD へのバイトリバースにコーディングするにはどうすればよいですか? それが役立つ場合、ファイルは正確に16MBです

4

1 に答える 1

0

次のように手動でバイトを交換するだけです。

with open("file.bin", "rb") as infile, open("reversed", "wb") as outfile:
  data = infile.read()
  for i in xrange(len(data) / 2):
    outfile.write(data[i*2+1])
    outfile.write(data[i*2])
于 2013-01-26T18:49:44.723 に答える