gpt4 book ai didi

python - 如何使用 h5py 区分 HDF5 数据集和组?

转载 作者:太空狗 更新时间:2023-10-29 17:17:12 34 4
gpt4 key购买 nike

我使用 Python 包 h5py(版本 2.5.0)访问我的 hdf5 文件。

我想遍历文件的内容并对每个数据集做一些事情。

使用访问方法:

import h5py

def print_it(name):
dset = f[name]
print(dset)
print(type(dset))


with h5py.File('test.hdf5', 'r') as f:
f.visit(print_it)

对于我获得的测试文件:

<HDF5 group "/x" (1 members)>
<class 'h5py._hl.group.Group'>
<HDF5 dataset "y": shape (100, 100, 100), type "<f8">
<class 'h5py._hl.dataset.Dataset'>

这告诉我文件中有一个数据集和一个组。但是,除了使用 type() 来区分数据集和组之外,没有明显的方法。 h5py documentation不幸的是,关于这个话题什么也没说。他们总是假定您事先知道什么是组以及什么是数据集,例如因为他们自己创建了数据集。

我想要这样的东西:

f = h5py.File(..)
for key in f.keys():
x = f[key]
print(x.is_group(), x.is_dataset()) # does not exist

当使用 h5py 在 Python 中读取未知的 hdf5 文件时,如何区分组和数据集?如何获取所有数据集、所有组、所有链接的列表?

最佳答案

不幸的是,h5py api 中没有内置方法来检查这一点,但您可以使用 is_dataset = isinstance(item, h5py.Dataset) 简单地检查项目的类型。

要列出文件的所有内容(尽管文件的属性除外),您可以使用 Group.visititems带有一个可调用项,该可调用项采用项目的名称和实例。

关于python - 如何使用 h5py 区分 HDF5 数据集和组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34330283/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com