Вопрос

У меня есть несколько (от 40 до 50) файлов MP3, которые я хотел бы объединить в один файл.Как лучше всего сделать это в Python?

Использовать fileinput модуль для перебора каждой строки каждого файла и записи ее в выходной файл?Аутсорсинг в Windows copy команда?

Это было полезно?

Решение

Объединить байты в эти файлы очень просто ... однако я не уверен, что это приведет к непрерывному воспроизведению - думаю, что это возможно, если файлы используют одинаковый битрейт, но я не уверен.

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()

Это создаст единый " everything.mp3 " файл со всеми байтами всех mp3-файлов в C: \ music, соединенных вместе.

Если вы хотите передать имена файлов в командной строке, вы можете использовать sys.argv [1:] вместо iglob (...) , и др.

Другие советы

Просто чтобы подвести итог (и украсть у ответа nosklo ), чтобы объединить два файла, вы делаете:

destination = open(outfile,'wb')
shutil.copyfileobj(open(file1,'rb'), destination)
shutil.copyfileobj(open(file2,'rb'), destination)
destination.close()

Это то же самое, что и

cat file1 file2 > destination

Хм.Я не буду использовать «линии».Быстрое и грязное использование

outfile.write( file1.read() )
outfile.write( file2.read() )

;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top