ファイルを取得してその内容を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」を追加することでした...