gpt4 book ai didi

c++ - 将逗号分隔的字符串属性写入 HDF5 数据集 C++

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:53 25 4
gpt4 key购买 nike

我正在尝试将逗号分隔的字符串属性写入 HDF5 数据集。我使用

创建数据集
dset = H5Dcreate(file, "dset1", H5T_NATIVE_DOUBLE, file_space, H5P_DEFAULT, plist, H5P_DEFAULT);

数据基本上是柱状的,它有字段如

Timestamp  Prop1   Prop2

现在我知道这是一个 hack,但它足以满足我的目的,以某种方式用“TimeStamp,Prop1,Prop2”之类的字符串标记 dset。我希望用 python 读回 HDF5 文件,并且可以轻松读取字符串。我认为可以为此使用 H5AWrite 方法。但是我不确定我们是否可以用它来写字符串,我的问题是

1) 如何使用写逗号分隔属性的方法

2) 如何在用 Python 打开文件时读回它。

我无法找到任何用 C++ 执行此操作的示例。任何指针将不胜感激。

最佳答案

这里是如何将属性写成字符串,如 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(",")

关于c++ - 将逗号分隔的字符串属性写入 HDF5 数据集 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com