سؤال

ولدي عدة ملفات MP3 (ما بين 40 و 50) الذي أود أن سلسلة في ملف واحد. ما هي أفضل طريقة للقيام بذلك في بيثون؟

fileinput وحدة لحلقة من خلال كل سطر من كل ملف والكتابة ل ملف إلاخراج؟ الاستعانة بمصادر خارجية لنوافذ 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: \ الموسيقى متصلا معا

إذا كنت تريد تمرير أسماء الملفات في سطر الأوامر، يمكنك استخدام sys.argv[1:] بدلا من iglob(...)، وما إلى ذلك.

scroll top