2014-11-02 78 views
0

我剛剛開始編程,我正在學習Python。我想製作一小段軟件,用音頻文件查看目錄,並將它們合併到一個音頻文件中。 這裏是我當前的代碼:合併多個音頻文件

import glob 
#import os 
import wave 

fil = raw_input("Qual o diretorio ?") 
#files = os.listdir(fil) 
files = glob.glob(fil) 

infiles = files 
outfile = "merged.wav" 

data= [] 
for infile in range(len(infiles)): 
    w = wave.open(infile, 'rb') 
    data.append([w.getparams(), w.readframes(w.getnframes())]) 
    w.close() 

output = wave.open(outfile, 'wb') 
output.setparams(data[0][0]) 
output.writeframes(data[0][1]) 
output.writeframes(data[1][1]) 
output.close() 

我根據這個帖子merging two wav files的代碼。我的想法是使用glob填充數組,並迭代獲取所有文件,但我得到一個屬性錯誤。 我能做什麼?

+0

你應該總是發佈整個錯誤與所有可以幫助我們的行。 – User 2014-11-02 03:36:08

+0

嗨,謝謝你的建議。這是我得到的:Traceback(最近一次調用最後): 文件「merger.py」,第17行,在 w = wave.open(infile,'rb') 文件「C:\ Python27 \ lib \ wave.py」,行509,打開 return Wave_read f) 文件「C:\ Python27 \ lib \ wave.py」,行129,在initfp中爲 self._file =塊(文件,bigendian = 0) 文件「C:\ Python27 \ lib \ chunk.py」,第61行,在__init__中 self.chunkname = file.read(4) – 2014-11-03 13:09:41

+0

錯誤丟失。如果這是你的問題,這將是一件好事,因爲我們專門爲此而設計,並且格式化使它更容易。類似於「AttributeError:xxx沒有屬性yyy」 – User 2014-11-03 16:15:12

回答

1

看起來錯的第一件事情是這樣的:

for infile in range(len(infiles)): 

你想使用它代替:

for infile in infiles: 

我建議使用一個調試器,像pudb(對於Linux/Mac)或winpdb (Windows。

+0

好的,非常感謝您的建議! – 2014-11-03 13:12:19