複数の(40〜50の)MP3ファイルを1つのファイルに連結したいと思っています。これをPythonで行う最良の方法は何ですか?Pythonでファイルを連結するにはどうすればいいですか?
fileinput
モジュールを使用して、各ファイルの各行をループし、出力ファイルに書き込みます。ウィンドウにアウトソーシングcopy
コマンド?
複数の(40〜50の)MP3ファイルを1つのファイルに連結したいと思っています。これをPythonで行う最良の方法は何ですか?Pythonでファイルを連結するにはどうすればいいですか?
fileinput
モジュールを使用して、各ファイルの各行をループし、出力ファイルに書き込みます。ウィンドウにアウトソーシングcopy
コマンド?
これらのファイルにバイトをまとめるのは簡単です...しかし、それが継続的な再生を引き起こすかどうかはわかりません。ファイルが同じビットレートを使用していると思われますが、わかりません。音楽が一緒に連結\:C内のすべてのmp3ファイルのすべてのバイトを持つ単一の「everything.mp3」ファイルを作成します
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()
。あなたは、コマンドラインでのファイルの名前を渡したい場合は
、あなたはsys.argv[1:]
代わりのiglob(...)
など
あなたはフルネームステップは必要ありませんglobは既に絶対ファイル名を生成しています。 – SilentGhost
グロブの代わりにiglobを使用することができます – SilentGhost
@SilentGhost:ありがとう、固定 – nosklo
うーん使用することができます。私は "線"を使用しません。クイックや汚れ使用
outfile.write(file1.read())
outfile.write(file2.read())
;)
これは非常に大きなハエでは機能しませんが、 –
はい、わかっています。しかし。私は「素早く汚い」と書いた。つまり、保証なし... – tuergeist
だけ要約(およびnosklo's answerから盗むために)、あなたは二つのファイル連結するために:
:destination = open(outfile,'wb')
shutil.copyfileobj(open(file1,'rb'), destination)
shutil.copyfileobj(open(file2,'rb'), destination)
destination.close()
をこれが同じです
cat file1 file2 > destination
http://stackoverflow.com/a/27077437/1157720 – sajjadG