Объединение байтового списка с помощью python - программирование
Подтвердить что ты не робот

Объединение байтового списка с помощью 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

что имеет смысл, потому что я работаю с байтами.

Есть ли способ использовать функцию соединения o нечто похожее на байты соединения? Спасибо.

4b9b3361

Ответ 1

Выполните объединение в байтовой строке с помощью b''.join():

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

Ответ 2

Просто работайте над своими "строками" и записывайте их, как только вы закончите с ними.

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