Python 2.7 Can';t使scipy.io.wavfile.read()正常工作

Python 2.7 Can';t使scipy.io.wavfile.read()正常工作,python-2.7,numpy,scipy,Python 2.7,Numpy,Scipy,我试图将一个.wav文件读入一个数组,这样我就可以绘制数组并进行FFT。我用wave模块打开了文件,现在我正在努力。有人建议我使用scipy.io.wavfile.read(文件名,mmap=False),但我运气不好。这个函数应该做我希望它做的事情,但它不是。我正在运行Python2.7,也许就是这样。请帮我想一想怎么做。我写的代码如下 import scipy import wave harp=wave.open('/Users/williamweiss2/Desktop/Test 2/ha

我试图将一个.wav文件读入一个数组,这样我就可以绘制数组并进行FFT。我用wave模块打开了文件,现在我正在努力。有人建议我使用scipy.io.wavfile.read(文件名,mmap=False),但我运气不好。这个函数应该做我希望它做的事情,但它不是。我正在运行Python2.7,也许就是这样。请帮我想一想怎么做。我写的代码如下

import scipy
import wave
harp=wave.open('/Users/williamweiss2/Desktop/Test 2/harp.wav','r')
frames_harp=harp.getnframes()
harp_rate,harp_data=scipy.io.wavfile.read(harp,mmap=False)
这是我尝试运行程序时遇到的错误。 --->harp_rate,harp_data=scipy.io.wavfile.read(harp,mmap=False)

AttributeError:“模块”对象没有属性“io”

任何帮助都将不胜感激。提前谢谢。

你把它弄糊涂了。删除
import wave
,使用
import scipy.io.wavfile
,然后调用
scipy.io.wavfile.read

例如:

>>> import scipy.io.wavfile
>>> FSample, samples = scipy.io.wavfile.read('myfile.wav')

与Python的模块不同,SciPy的模块为您完成从字节字符串到数字的转换。有关详细信息,请参阅链接的文档。

确定。我现在正试图改变这一点。区别是什么?关键问题是,
import scipy
不会导入所有scipy子包。如果您想使用
scipy.io
,则必须显式地导入它,使用您喜欢的
import
的任何变体。例如,使用
import scipy.io
并使用
scipy.io.wavfile.read
,或从scipy import io使用
io.wavfile.read
,或从scipy.io导入wavfile并使用
wavfile.read
,等等。