Ответ 1
Выполните объединение в байтовой строке с помощью b''.join()
:
>>> b''.join([b'line 1\n', b'line 2\n'])
b'line 1\nline 2\n'
Я пытаюсь разработать инструмент, который читает двоичный файл, вносит некоторые изменения и сохраняет его. Я пытаюсь сделать список каждой строки в файле, работать с несколькими строками, а затем снова присоединиться к списку.
Это то, что я пробовал:
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 нечто похожее на байты соединения? Спасибо.
Выполните объединение в байтовой строке с помощью 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()