首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python和h5py读取HDF5属性(元数据

如何使用Python和h5py读取HDF5属性(元数据
EN

Stack Overflow用户
提问于 2021-02-11 07:40:19
回答 2查看 3.7K关注 0票数 5

我有一个包含多个文件夹的HDF5文件。每个文件夹都添加了属性(有些将属性称为“元数据”)。我知道如何访问文件夹中的键,但不知道如何使用Python的h5py包提取属性。以下是来自HDFView的属性:

代码语言:javascript
复制
Folder1(800,4)
   Group size = 9
   Number of attributes = 1
        measRelTime_seconds = 201.73

我需要拉出这个measRelTime_seconds值。我已经有了一个读取文件的循环

代码语言:javascript
复制
f = h5py.File(file,'r')
        for k,key in enumerate(f.keys()): #loop over folders
            #need to obtain measRelTime_seconds here, I guess

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-11 11:28:38

好吧,我找到我的答案了。要读取它,只需检查属性的名称,如下所示

代码语言:javascript
复制
f['Folder'].attrs.keys()

并且该值可以用

代码语言:javascript
复制
f['Folder'].attrs['<name of the attribute>']
票数 3
EN

Stack Overflow用户

发布于 2021-02-11 09:08:54

属性的工作方式与组和数据集相同。使用object.attrs.keys()遍历属性名称。对象可以是文件、组或数据集。

这是一个简单的例子,它在3个不同的对象上创建2个属性,然后读取和打印它们。

代码语言:javascript
复制
arr = np.random.randn(1000)

with h5py.File('groups.hdf5', 'w') as f:
    g = f.create_group('Base_Group')
    d = g.create_dataset('default', data=arr)

    f.attrs['User'] = 'Me'
    f.attrs['OS'] = 'Windows'

    g.attrs['Date'] = 'today'
    g.attrs['Time'] = 'now'

    d.attrs['attr1'] = 1.0
    d.attrs['attr2'] = 22.2
    
    for k in f.attrs.keys():
        print('{} => {}'.format(k, f.attrs[k]))
    for k in g.attrs.keys():
        print('{} => {}'.format(k, g.attrs[k]))
    for k in d.attrs.keys():
        print('{} => {}'.format(k, d.attrs[k]))
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66146782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档