Joining byte list with python

user2130898 picture user2130898 · Jun 12, 2013 · Viewed 41.6k times · Source

I'm trying to develop a tool that read a binary file, makes some changes and save it. What I'm trying to do is make a list of each line in the file, work with several lines and then join the list again.

This is what I tried:

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)

and give me this error:

TypeError: sequence item 0: expected str instance, bytes found

which makes sense because I'm working with bytes.

Is there a way I can use join function o something similar to join bytes? Thank you.

Answer

Andrew Clark picture Andrew Clark · Jun 12, 2013

Perform the join on a byte string using b''.join():

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