バイナリファイルを読み取り、いくつかの変更を加えて保存するツールを開発しようとしています。私がやろうとしているのは、ファイル内の各行のリストを作成し、いくつかの行を処理してから、リストに再び参加することです。
これは私が試したものです:
file = open('myFile.exe', 'r+b')
aList = []
for line in f:
aList.append(line)
#Here im going to mutate some lines.
new_file = ''.join(aList)
このエラーを教えてください:
TypeError: sequence item 0: expected str instance, bytes found
私はバイトを扱っているので、これは理にかなっています。
バイトの結合に似た結合関数を使用する方法はありますか?ありがとうございました。
b''.join()
を使用して、バイト文字列で結合を実行します。
>>> b''.join([b'line 1\n', b'line 2\n'])
b'line 1\nline 2\n'
あなたの「ライン」に取り組んで、それらを使い終わったらすぐに書き出してください。
file = open('myFile.exe', 'r+b')
outfile = open('myOutfile.exe', 'wb')
for line in f:
#Here you are going to mutate the CURRENT line.
outfile.write(line)
file.close()
outfile.close()