2
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文件?怎么可能?

4

2 回答 2

3

使用该glob模块并将模式传递给它(例如*.wav文件的名称或名称)。它将返回与条件或模式匹配的文件列表。

import glob
from scipy.io.wavfile import read

wavs = []
for filename in glob.glob('*.wav'):
    print(filename)
    wavs.append(read(filename))
于 2013-09-19T13:27:43.750 回答
2

如果您不想使用glob,那么这样的方法也可以:

files = [f for f in os.listdir('.') if os.path.isfile(f) and f.endswith(".wav")]
于 2013-09-19T13:49:26.200 回答