1

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

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

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

4

2 回答 2

1

如果您不受特定技术的约束,请查看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 行的次数与您要写入的行一样多。

于 2019-05-01T20:53:42.860 回答
1

这与您的其他问题类似。尝试保存 hdf5 行时出错,其中一列是字符串,另一列是浮点数数组

使用 pytables,您可以创建一个引用定义每个数据类型的 dtype 的空表(在本示例中为 4 个浮点数)。然后,您可以使用table_object.append(row_data)添加 1 行或多行数据,其中row_data可以使用元组列表或 numpy recarray 定义。请参阅我发布以回答上述问题的完整示例。

于 2019-05-02T04:10:20.360 回答