54

我正在尝试开发一种工具来读取二进制文件,进行一些更改并保存它。我要做的是列出文件中的每一行,处理几行,然后再次加入列表。

这是我尝试过的:

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

这是有道理的,因为我正在使用字节。

有没有办法可以使用连接功能或类似于连接字节的东西?谢谢你。

4

2 回答 2

107

使用以下方法对字节字符串执行连接b''.join()

>>> b''.join([b'line 1\n', b'line 2\n'])
b'line 1\nline 2\n'
于 2013-06-12T14:38:04.577 回答
3

只需在您的“线条”上工作,并在完成它们后立即将它们写出来。

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()
于 2013-06-12T14:30:44.340 回答