我正在尝试将逗号分隔的字符串属性写入HDF5数据集。我使用
创建数据集dset = H5Dcreate(file, "dset1", H5T_NATIVE_DOUBLE, file_space, H5P_DEFAULT, plist, H5P_DEFAULT);
数据基本上是柱状的,它有
等字段Timestamp Prop1 Prop2
现在我知道这是一个黑客攻击,但我的目的是以某种方式用“TimeStamp,Prop1,Prop2”这样的字符串来标记dset。我期待在python中读取HDF5文件,并且可以轻松读取字符串。我认为可以使用H5AWrite方法。但我不确定我们是否可以用它来编写字符串,我的问题是
1)如何使用该方法编写逗号分隔属性
2)如何在Python中打开文件时将其读回来。
我无法在C ++中找到任何示例。任何指针都将受到赞赏。
答案 0 :(得分:1)
以下是如何将属性编写为类似column1,column2,column3
的字符串(使用C API,因为您似乎正在使用它,尽管要求使用C ++):
hid_t atype = H5Tcopy(H5T_C_S1);
H5Tset_size(atype, H5T_VARIABLE);
hid_t attr = H5Acreate(dset, "columns", atype, H5S_SCALAR, H5P_DEFAULT);
H5Awrite(attr, atype, "column1,column2,column3");
H5Aclose(attr);
然后用Python阅读:
import h5py
file = h5py.File("my_file.h5", "r")
dset = file["/my_dset"]
columns = dset.attrs["columns"].split(",")