【发布时间】:2015-04-17 08:05:07
【问题描述】:
我有想要使用 Python 模块 h5py(在 Python 2.7 中)打开的 HDF5 文件。
当我有一个包含组和数据集的文件时,这很容易:
import h5py as hdf
with hdf.File(relative_path_to_file, 'r') as f:
my_data = f['a_group']['a_dataset'].value
但是,在我目前的情况下,我没有组。只有数据集。不幸的是,无论我尝试什么,我都无法访问我的数据。以下都不起作用(全部与 KeyErrors 或 ValueErrors 中断):
my_data = f['a_dataset'].value #KeyError
my_data = f['/a_dataset'].value #KeyError
my_data = f['/']['a_dataset'].value #KeyError
my_data = f['']['a_dataset'].value #ValueError
my_data = f['.']['a_dataset'].value #KeyError
如果没有解决方案,我可以将我的文件重新制作成一个组。不过,看起来确实应该有一个解决方案......
似乎 h5py 没有看到任何键:
f.keys()
[]
【问题讨论】:
-
f.keys()包含什么?打印出来看看! -
对不起,我应该把它包括在内。我得到一个空列表:[]
-
那么我怀疑您的 HDF5 文件实际上包含任何内容。您是否尝试过使用 h5ls 或类似工具进行检查?也许您可以分享 h5ls 的输出或向我们展示生成 HDF5 文件的代码?
-
当我用 HDHView 打开文件时可以看到数据,所以我知道它在那里。在 HDFView 中,我可以使用 [/a_dataset] 之类的语法选择每个数据集,但这在 python h5py 中不起作用。
-
您绝对肯定您检查了
f.keys在with hdf…块内?
标签: python python-2.7 hdf5 h5py hdf