首页 > 解决方案 > 有没有办法在 Python 中逐行编写 hdf5 文件?

问题描述

对于 CSV 文件,我们可以使用

writer = csv.writer(output)
writer.writerow([a, b, c, d])

写Hdf5文件有类似的东西吗?

标签: pythonhdf5pytableshdfql

解决方案


如果您不受特定技术的约束,请查看HDFql,因为这将在处理 HDF5 文件时减轻您的低级细节。

要解决您的问题,您需要创建一个具有两个维度的数据集:第一个是可扩展的,第二个的大小为四(根据您的代码片段,我假设您希望每行存储四个整数;另外,如果数据类型不是整数,请查看 HDFql参考手册以获取所有数据类型的枚举,并相应地更改下面的代码片段)。

在 Python 中,要创建这样的数据集,请执行(dset在本例中调用):

HDFql.execute("CREATE DATASET dset AS INT(UNLIMITED, 4)")

然后,对于您要编写的每一行,执行(请用适当的值替换、和val0val1val2val3

HDFql.execute("INSERT INTO dset(-1:::) VALUES(%d, %d, %d, %d)" % (val0, val1, val2, val3))

...最后,像这样扩展数据集的第一维dset

HDFql.execute("ALTER DIMENSION dset TO +1")

重复代码片段第 2 行和第 3 行的次数与您要写入的行一样多。


推荐阅读