我正在尝试将test.sample(state)的输出分配给名为test_out.h5的文件,特别是要创建一个名为sample_的新组。但是,即使它可以正确编译和运行(作为更大的代码的一部分,但不能简化为一个最小的工作示例),当我尝试打开文件时,仍然显示“无法打开对象(找不到组件)”。我知道有this个帖子和this的帖子,但我认为没有帮助。
size_t num=5;
{
std::string test_out = "test_out.h5";
H5::H5File f(test_out, H5F_ACC_TRUNC);
for (size_t m = 0; m < num; m++){
string name=std::to_string(m);
H5::Group grp = f.createGroup("sample_"+name);
test.sample(state);
state.saveState(grp);}
H5close();
}
我试图按以下方式在Python3中打开文件:
f4=h5py.File('<my_dir>/test_out.h5', 'r')
print(list(f4.keys()))
它在那里失败
如果有人能指出错误,我将不胜感激。请记住,我不应该更改C ++代码中使用的任何软件包。
更新:同一例程在另一台计算机上打开了该文件,因此我仍在尝试找出h5py安装突然出现问题的原因。
答案 0 :(得分:0)
我能够通过更改h5py的版本来打开文件。 Atm,我无法提供有关为什么在最新版本的h5py终端上运行突然出现问题的解释,但是jupyter notebook也可以与以前的h5py安装一起使用。