使用 H5Py 将数据写入 HDF5 文件导致空文件

Writing Data to an HDF5 File Using H5Py Results in an Empty File

我正在转换大型数据库以存储在 HDF5 文件中。为了熟悉 H5Py(版本 3.2.1)和 HDF5,我阅读了 docs for H5Py 并编写了一个小脚本,将随机数据存储在 HDF5 文件中,如下所示。

import h5py
import numpy as np


def main():
    f = h5py.File('testFile.hdf5', 'w')
    simBigData = np.random.randint(50, size=(24, 6), dtype=np.int32)
    simSmallData = np.random.randint(50, size=(8, 6), dtype=np.int32)
    simOut = np.random.randint(50, size=(8, 6), dtype=np.int32)
    grp = f.create_group('testGroup')
    dsBigData = grp.create_dataset('bigData', data=simBigData)
    dsSmallData = grp.create_dataset('smallData', data=simSmallData)
    dsOut = grp.create_dataset('out', data=simOut)
    print('HDF5 Data')
    print(f['testGroup/bigData'])
    print(f['testGroup/smallData'])
    print(f['testGroup/out'])
    f.close()


if __name__ == '__main__':
    main()

当我运行这个脚本时,我得到以下输出,所以肯定已经写了一些东西,至少在内存中。

HDF5 Data
<HDF5 dataset "bigData": shape (24, 6), type "<i4">
<HDF5 dataset "smallData": shape (8, 6), type "<i4">
<HDF5 dataset "out": shape (8, 6), type "<i4">

我在我的目录中得到一个大约 5kB 的 HDF5 文件。但是,当我用 HDFView(2.11 版)打开它时,我得到一个空白文件。单击底部的“元数据”选项卡,我得到以下内容,文件中似乎没有显示任何内容:

/ (0)
    Group size = 0
    Number of attributes = 0

如何让 H5Py 正确写入文件?

根据@hpaulj 的评论,我调查了不同的版本。 Ubuntu 存储库中的 HDFView 版本太旧,无法打开生成的 HDF5 文件。切换到 h5dump,我能够验证我的文件结构是否正确写入。