1

ファイルを取得してその内容を16進数に変換し、それをファイルに保存してから、16進数の文字列をASCIIに戻してファイルに保存しようとしています。以下の方法は機能しますが、最初のファイルと同じはずの 16 進数の ascii ファイルの行の後に余分な空の行を追加します...

    import binascii
    filename = 'file.txt'
    with open(filename, 'rb') as f:
        content = f.read()
    out = binascii.hexlify(content)

    f = open('out.txt', 'w')
    f.write(out)
    f.close()

    asci = out.decode("hex")
    w = open('printed.txt', 'w')
    w.write(asci)
    w.close()

================================================== ================================

実際にpythonのドキュメントを読んだ後、私は自分の間違いに気づきました。コードは次のようになります。(out.txt から読み取るように少し変更されています...)

import binascii
filename = 'file.txt'
with open(filename, 'rb') as f:
    content = f.read()
out = binascii.hexlify(content)

f = open('out.txt', 'wb')
f.write(out)
f.close()

import binascii
filename = 'out.txt'
with open(filename, 'rb') as f:
    content = f.read()
asci = content.decode("hex")

asci = out.decode("hex")
w = open('printed.txt', 'wb')
w.write(asci)
w.close()

キーは、ファイルをバイナリ書き込みモードで開くために、open コマンドの「w」に「b」を追加することでした...

4

1 に答える 1