【发布时间】:2020-04-12 10:02:02
【问题描述】:
我之前用过这个没问题,突然不行了:
import scipy.io
import numpy as np
import h5py
f = h5py.File('Dv25.mat','r')
D = f["Dv25"]
输出:
Traceback (most recent call last):
File "C:/Users/jonathan/Documents/Forskning/P1/Datab/Felles/Matart/Felles/datab.py", line 5, in
<module>
D = f["Dv25"]
File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "C:\Program Files\Python38\lib\site-packages\h5py\_hl\group.py", line 264, in __getitem__
oid = h5o.open(self.id, self._e(name), lapl=self._lapl)
File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py\h5o.pyx", line 190, in h5py.h5o.open
KeyError: "Unable to open object (object 'Dv25' doesn't exist)"
但是,输入 f 会给出:
>>> f
<HDF5 file "Dv25.mat" (mode r)>
将 Dv25.mat 换成 Dv25 或使用 ' 或 " 都没有帮助。
这个问题的原因是什么,我该如何解决?显然这个文件是“那里”
谢谢!!!
最好的,J
【问题讨论】:
-
我对这个库没有经验,但问题出在 python 中。您正在尝试索引对象“文件”的某些内容,而无法索引对象“文件”。如果您想使用索引,很可能您需要将 f 转换为可以索引的其他对象。
-
在 google 上搜索了一下,尝试运行
f.keys()看看哪些可以访问,哪些不能访问 -
所以,我成功复制了之前使用的代码,它对相同类型的文件运行良好。 f.keys 给了 >>> f.keys > 所以我还是觉得我的初始代码应该没问题...