>>>fSM = h5py.File(filenames, 'r')
>>>fSM.keys()
<KeysViewHDF5 [Frequency', 'cycle']>
>>>fSM['Frequency']
<HDF5 dataset "baseFrequency": shape (), type "<f8">
>>>fSM['acquisition']['drivefield']['baseFrequency']._is_empty
False
HDF5 在 Python 中使用
你读过h5py文档吗? HDF5 使用组和数据集来组织数据。组就像文件夹,数据集就像数据文件。
keys()
给出
组中对象的名称。shape
就是
数据集的形状。这就是您的代码的作用:
fSM.keys()
打印根级别对象(可以是组或
数据集)。fSM['Frequency']
打印“频率”对象属性。它是一个
浮点值的数据集。然而,基于 shape ()
,它具有未定义的形状(并且没有数据值)。 (对我来说)很奇怪的是,当数据集名称被命名为“Frequency”时,它会将数据集名称打印为“baseFrequency”。这需要一些诊断(假设这不是您帖子中的拼写错误。fSM['acquisition']['drivefield']['baseFrequency']._is_empty
引用组中名为“baseFrequency”的数据集
“drivefield”是“acquisition”组下的一个组。 ._is_empty
检查它是否为空。 False
值表示不为空。开始编码之前,您需要了解文件架构(组和数据集)。最简单的方法(对于新用户)是使用 HDF Group 中的 HDFView 实用程序 打开文件。这样你就可以“看到”文件结构。否则,您需要编写一些代码来检查架构。