如何在Python中连接文件?

我有多个(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”文件,并将C: music中的所有mp3文件的所有字节并置在一起。

如果要在命令行中传递文件的名称,则可以使用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() )

;)

链接地址: http://www.djcxy.com/p/7321.html

上一篇: How do I concatenate files in Python?

下一篇: Using SQLite in a Python program