您可以使用组对象提取hdf5的文件对象吗?

时间:2018-07-23 15:45:14

标签: python python-2.7 ipython hdf5 h5py

我使用

在ipython中打开了hdf5文件
import h5py as h5
f = h5.File("fname.h5", "r")

然后我访问了该文件中的一个组

g1 = f['group1']

然后,我意外地用另一个文件改写了f。第一个文件仍然打开,我可以访问g1中的内容,但不能访问f中的任何其他组。有没有一种方法可以使用g1来取回文件对象?当然,我可以关闭然后重新打开文件,但是我想知道是否还有其他方法。

2 个答案:

答案 0 :(得分:1)

您可以使用组的file属性:

f = g1.file

根据Group属性的docs

  

文件
该组所在的文件实例。

答案 1 :(得分:0)

不确定是否存在这个问题,但我找到了答案。组具有指向父级的parent属性。要获取原始文件,只需使用f = g1.parent

edit:实际上,虽然这允许您从/访问组,但是新的f将引用 group /,而不是文件。因此,您无法使用f关闭文件或访问任何其他文件属性。