How do I concatenate files in Python?

file, mp3, python

Solution

Putting the bytes in those files together is easy... however I am not sure if that will cause a continuous play - I think it might if the files are using the same bitrate, but I'm not sure.

from glob import iglob
import shutil
import os

PATH = r'C:\music'

destination = open('everything.mp3', 'wb')
for filename in iglob(os.path.join(PATH, '*.mp3')):
    shutil.copyfileobj(open(filename, 'rb'), destination)
destination.close()

That will create a single "everything.mp3" file with all bytes of all mp3 files in C:\music concatenated together.

If you want to pass the names of the files in command line, you can use `sys.argv[1:]` instead of `iglob(...)`, etc.

Problem

I have multiple (between 40 and 50) MP3 files that I'd like to concatenate into one file. What's the best way to do this in Python? Use `fileinput` module to loop through each line of each file and write it to an output file? Outsource to windows `copy` command?

Original source

Related problems