无法导入scipy的io

4 投票
1 回答
6201 浏览
提问于 2025-04-18 12:16

我刚开始学Python,所以可能犯了一些新手错误。不过我搞不明白,希望有人能帮我。我想在Python中使用Matlab的(.mat)文件。为此,我尝试了:

import scipy.io

结果出现了这个错误:

文件 "C:\Python27\lib\site-packages\scipy\io__init__.py",第85行,
从 .matlab 导入 loadmat, savemat, whosmat, byteordercodes
文件 "C:\Python27\lib\site-packages\scipy\io\matlab__init__.py",第13行,
从 .mio 导入 loadmat, savemat, whosmat
文件 "C:\Python27\lib\site-packages\scipy\io\matlab\mio.py",第12行,
从 .miobase 导入 get_matfile_version, docfiller
文件 "C:\Python27\lib\site-packages\scipy\io\matlab\miobase.py",第22行,
从 scipy.misc 导入 doccer
文件 "C:\Python27\lib\site-packages\scipy\misc__init__.py",第44行,
从 . 导入 doccer
导入错误:无法导入名称 doccer

我不明白这个错误,"doccer"是什么意思?

有趣的是,当我输入 import scipy 时,似乎没有问题。当我输入:
help(scipy.io) 它却出现了错误:

AttributeError: 'module' object has no attribute 'io'

不过当我查看scipy文件夹时,发现里面有一个叫io的文件夹。有人能帮帮我吗?顺便说一下,我用的是Python 2.7。

1 个回答

0

在这里,你需要从 scipy.io 这个包中导入你要使用的模块。
比如说,如果我在处理音频数据,并且想用到 wavfile 模块,那么我会这样做:

import scipy.io.wavfile
sr,data = scipy.io.wavfile.read("xx")

这里是它的所有模块

   ['FortranEOFError',
 'FortranFile',
 'FortranFormattingError',
 'byteordercodes',
 'harwell_boeing',
 'hb_read',
 'hb_write',
 'idl',
 'loadmat',
 'matlab',
 'mminfo',
 'mmio',
 'mmread',
 'mmwrite',
 'netcdf',
 'netcdf_file',
 'netcdf_variable',
 'readsav',
 'savemat',
 'whosmat']

撰写回答