我正在尝试开发一个读取二进制文件的工具,进行一些更改并保存。我要做的是在文件中列出每一行,使用多行,然后再次加入列表。
这就是我的尝试:
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
这是有道理的,因为我正在处理字节。
有没有办法可以使用类似于连接字节的连接函数? 谢谢。
答案 0 :(得分:56)
使用b''.join()
:
>>> b''.join([b'line 1\n', b'line 2\n'])
b'line 1\nline 2\n'
答案 1 :(得分: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()