这是我的代码:
for filename in glob.glob('*.wav') :
for i in range(10) :
sr[i],x[i]=scipy.io.wavfile.read(filename)
我想读取文件夹中的.wav文件并将其值保存在x上,并将其采样率保存在sr上。但是我的代码给出了错误:“列表分配索引超出范围”。我该如何解决?我在ubuntu上使用python2.7。
答案 0 :(得分:2)
我可能错了,但我猜测它会成为这条线:
sr[i],x[i] = scipy.io.wavfile.read(filename)
我不认为您能够将结果编入索引,因为我不认为他们会列出这些结果。
试试这个:
sr, x = scipy.io.wavfile.read(filename)
如果您需要sr
和x
值的列表,请在阅读文件之前尝试定义列表。将结果单独附加到每个列表中。可能有一种聪明的方式来写这个,但为了清楚起见,我会这样做:
sr = []
x = []
for filename in glob.glob('*.wav'):
for i in range(10):
sr_value, x_value = scipy.io.wavfile.read(filename)
sr.append(sr_value)
x.append(x_value)
我也建议您将sr
和x
(特别是x
)变量重命名为更有意义的变量。它可能会使您的代码更容易阅读,并且可以在以后节省一些命名冲突。