如何使用Python只读取目录中的wav文件?

时间:2013-09-19 13:25:47

标签: python audio numpy wav

from scipy.io.wavfile import read
files = [f for f in os.listdir('.') if os.path.isfile(f)]
print files
for i in range(0,1):
w = read(files[i])
print w

我只需要从python工作目录中读取.wav文件。并将每个.wav文件存储为numpy数组。这是我的代码。但在此代码中,所有文件都被读取。我只读取目录中的wav文件?怎么可能?

2 个答案:

答案 0 :(得分:3)

使用glob模块并传递一个模式(如*.wav或任何文件命名)。它将返回符合条件或模式的文件列表。

import glob
from scipy.io.wavfile import read

wavs = []
for filename in glob.glob('*.wav'):
    print(filename)
    wavs.append(read(filename))

答案 1 :(得分:2)

如果你不想使用glob,那么类似的东西也会起作用:

files = [f for f in os.listdir('.') if os.path.isfile(f) and f.endswith(".wav")]