对于 CSV 文件,我们可以使用
writer = csv.writer(output)
writer.writerow([a, b, c, d])
写Hdf5文件有类似的东西吗?
如果您不受特定技术的约束,请查看HDFql,因为这将在处理 HDF5 文件时减轻您的低级细节。
要解决您的问题,您需要创建一个具有两个维度的数据集:第一个是可扩展的,第二个的大小为四(根据您的代码片段,我假设您希望每行存储四个整数;另外,如果数据类型不是整数,请查看 HDFql参考手册以获取所有数据类型的枚举,并相应地更改下面的代码片段)。
在 Python 中,要创建这样的数据集,请执行(dset在本例中调用):
HDFql.execute("CREATE DATASET dset AS INT(UNLIMITED, 4)")
然后,对于您要编写的每一行,执行(请用适当的值替换、和val0)val1:val2val3
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 行的次数与您要写入的行一样多。
这与您的其他问题类似。尝试保存 hdf5 行时出错,其中一列是字符串,另一列是浮点数数组
使用 pytables,您可以创建一个引用定义每个数据类型的 dtype 的空表(在本示例中为 4 个浮点数)。然后,您可以使用table_object.append(row_data)添加 1 行或多行数据,其中row_data可以使用元组列表或 numpy recarray 定义。请参阅我发布以回答上述问题的完整示例。