如何使用 Python 和 h5py 读取 HDF5 属性(元数据)
How to read HDF5 attributes (metadata) with Python and h5py
我有一个 HDF5 文件,里面有多个文件夹。每个文件夹都添加了属性(一些调用属性“元数据”)。我知道如何访问文件夹内的键,但我不知道如何使用 Python 的 h5py 包提取属性。
以下是 HDFView 的属性:
Folder1(800,4)
Group size = 9
Number of attributes = 1
measRelTime_seconds = 201.73
我需要提取这个 measRelTime_seconds
值。我已经有一个循环来读取文件
f = h5py.File(file,'r')
for k,key in enumerate(f.keys()): #loop over folders
#need to obtain measRelTime_seconds here, I guess
谢谢
属性就像组和数据集一样工作。使用 object.attrs.keys()
遍历属性名称。该对象可以是文件、组或数据集。
这是一个简单的示例,它在 3 个不同的对象上创建 2 个属性,然后读取并打印它们。
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]))
好的,我找到答案了。阅读它你可以简单地检查属性的名称为
f['Folder'].attrs.keys()
并且值可以用
返回
f['Folder'].attrs['<name of the attribute>']
我有一个 HDF5 文件,里面有多个文件夹。每个文件夹都添加了属性(一些调用属性“元数据”)。我知道如何访问文件夹内的键,但我不知道如何使用 Python 的 h5py 包提取属性。 以下是 HDFView 的属性:
Folder1(800,4)
Group size = 9
Number of attributes = 1
measRelTime_seconds = 201.73
我需要提取这个 measRelTime_seconds
值。我已经有一个循环来读取文件
f = h5py.File(file,'r')
for k,key in enumerate(f.keys()): #loop over folders
#need to obtain measRelTime_seconds here, I guess
谢谢
属性就像组和数据集一样工作。使用 object.attrs.keys()
遍历属性名称。该对象可以是文件、组或数据集。
这是一个简单的示例,它在 3 个不同的对象上创建 2 个属性,然后读取并打印它们。
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]))
好的,我找到答案了。阅读它你可以简单地检查属性的名称为
f['Folder'].attrs.keys()
并且值可以用
返回f['Folder'].attrs['<name of the attribute>']