python如何读取数据集_关于python:如何使⽤h5py读取仅具
有数据集(⽆组)的H。。。
我有要使⽤Python模块h5py(在Python 2.7中)打开的HDF5⽂件。
当我有⼀个包含组和数据集的⽂件时,这很容易:
1
2
3
4import h5py as hdf
with hdf.File(relative_path_to_file, 'r') as f:
my_data = f['a_group']['a_dataset'].value
但是,在⽬前的情况下,我没有团体。 只有数据集。 不幸的是,⽆论尝试什么,我都⽆法访问我的数据。 以下所有⼯作均不起作⽤(均因KeyErrors或ValueErrors中断):
1
2
3
4
5
6
7
8
9my_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没有看到任何键:
1
2f.keys()
[]
f.keys()包含什么? 打印出来看看!
抱歉,我应该包括在内。 我得到⼀个空清单:[]
好吧,我怀疑您的HDF5⽂件实际上是否包含任何内容。 您是否尝试过使⽤h5ls或类似产品进⾏检查? 也许您可以共享h5ls的输出,或者向我们显⽰⽣成HDF5⽂件的代码?
当我使⽤HDHView打开⽂件时可以看到数据,所以我在那⾥知道它。 在HDFView中,我可以使⽤[/ a_dataset]之类的语法选择每个数据集,但是在python h5py中不起作⽤。
您绝对肯定您检查了with hdf…块中的f.keys吗?
是的,我在运⾏代码时遇到错误,我随后在调试模式下以交互⽅式(带有和不带有" with")进⾏了尝试
那么,对我来说,最后⼀个选择是:您可以共享⽂件吗?
我⽆法分享,但⾮常感谢您的帮助!
我发现了这个问题,我认为这是h5py应该解决的问题。
问题(我最初忘记在问题中进⾏详细说明,现在进⾏了编辑)是我⽤相对⽂件路径打开了hdf5⽂件。 当我使⽤绝对⽂件路径时,⼀切运⾏正常。
可悲的是,这将导致我遇到⿇烦,因为我的代码旨在在不同的机器上可移植地运⾏...
感谢gspr和jimmyb的帮助:-)
它的2019年,我可以确认问题尚未解决。 谢谢你的回答...
我认为这应该有效:
1f['.']['a_dataset']
您可以尝试执⾏以下操作:
1
2dir(f['/'])
dir(f['.'])
可悲的是它对我没有⽤。 当我使⽤f.keys()时,我得到⼀个空列表。
对于所有这些选项,将返回空的键列表。 由于某些原因,没有组成员资格...
python怎么读取py文件这对我也不起作⽤。
当我使⽤相对路径时,它⼯作正常。
来写:
1
2
3
4fileName ="data/hdf5/topo.hdf5"
with h5py.File(fileName, 'w') as f:
dset = f.create_dataset('topography', data = z, dtype = 'float32')
读取数据:
1
2with h5py.File(fileName, 'r') as f:
my_data = f['.']['topography'].value
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论