在python中打开.mat文件时出错

在python中打开.mat文件时出错,python,matlab,io,scipy,Python,Matlab,Io,Scipy,我试图打开一个MATLAB文件,它是一个“结构数组”。使用scipy.io.loadmat打开文件时,出现以下错误: File "<ipython-input-15-0951b80baef6>", line 1, in <module> data = sio.loadmat('C:\Users\Martin\Desktop\Biophysics PhD\Results\180321_agonists_spreading_conditions\180321_agon

我试图打开一个MATLAB文件,它是一个“结构数组”。使用scipy.io.loadmat打开文件时,出现以下错误:

File "<ipython-input-15-0951b80baef6>", line 1, in <module>
    data = sio.loadmat('C:\Users\Martin\Desktop\Biophysics PhD\Results\180321_agonists_spreading_conditions\180321_agonists_spreading_conditions\Compare_ADPdexBSA.mat')

File "C:\Users\Martin\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", line 141, in loadmat
MR, file_opened = mat_reader_factory(file_name, appendmat, **kwargs)

File "C:\Users\Martin\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", line 64, in mat_reader_factory
byte_stream, file_opened = _open_file(file_name, appendmat)

TypeError: 'NoneType' object is not iterable
文件“”,第1行,在
data=sio.loadmat('C:\Users\Martin\Desktop\Biophysics PhD\Results\180321激动剂\u扩散条件\180321激动剂\u扩散条件\Compare\u adpddexbsa.mat')
loadmat中第141行的文件“C:\Users\Martin\Anaconda2\lib\site packages\scipy\io\matlab\mio.py”
MR,文件打开=材料读取器工厂(文件名,附录,**kwargs)
文件“C:\Users\Martin\Anaconda2\lib\site packages\scipy\io\matlab\mio.py”,第64行,位于mat\u reader\u工厂
字节\流,文件\打开=\打开\文件(文件\名称,附录)
TypeError:“非类型”对象不可编辑

对编程来说还是很新的,所以我不知道如何解释这个错误。非常感谢您为我提供的任何帮助

此错误极有可能发生,因为
scipy.io.loadmat
找不到感兴趣的文件。因为您使用的是Windows,所以您定义的路径不太正确。您需要用两个反斜杠勾勒目录分隔符
\
\

换言之:

data = sio.loadmat('C:\\Users\\Martin\\Desktop\\Biophysics PhD\\Results\\180321_agonists_spreading_conditions\\180321_agonists_spreading_conditions\\Compare_ADPdexBSA.mat')

谢谢,你的解决方案奏效了。我不敢相信这个问题这么容易就解决了,而且即使我直接从windows资源管理器地址复制了地址,地址也不起作用bar@kynnem当然可以我知道这个错误,因为我以前也遇到过。实际上,如果不将反斜杠加倍,则错误是未定义的,因为您正在指定文件的实际路径。在Python3上,我得到一个unicode错误。在Python2上,我得到一个无效模式错误。要成为平台无关者,请考虑使用<代码> OS.PATH。加入< /代码>。这样,无论操作系统是什么,它都能正确插入目录描述符:
data=sio.loadmat(os.path.join('C:','Users','Martin',…)
我通常觉得比
os.path
@excaza更适合使用。谢谢