web-dev-qa-db-ja.com

pythonでバイトリストを結合する

バイナリファイルを読み取り、いくつかの変更を加えて保存するツールを開発しようとしています。私がやろうとしているのは、ファイル内の各行のリストを作成し、いくつかの行を処理してから、リストに再び参加することです。

これは私が試したものです:

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

私はバイトを扱っているので、これは理にかなっています。

バイトの結合に似た結合関数を使用する方法はありますか?ありがとうございました。

27
user2130898

b''.join()を使用して、バイト文字列で結合を実行します。

>>> b''.join([b'line 1\n', b'line 2\n'])
b'line 1\nline 2\n'
61
Andrew Clark

あなたの「ライン」に取り組んで、それらを使い終わったらすぐに書き出してください。

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()
2
mawimawi