您可以使用组对象提取 hdf5 的文件对象吗?
Can you extract the file object of an hdf5 using a group object?
我使用
在 ipython 中打开了一个 hdf5 文件
import h5py as h5
f = h5.File("fname.h5", "r")
然后我访问了那个文件中的一个组
g1 = f['group1']
然后我不小心用另一个文件覆盖了f
。第一个文件仍然打开,我可以访问 g1
中的内容,但我无法访问 f
中的任何其他组。有没有办法使用 g1
来取回文件对象?当然我也可以直接关闭文件再打开,但是我想知道有没有别的办法
不确定这个问题是否值得存在,但我找到了答案。组有一个指向父级的 parent
属性。要获取原始文件,只需使用 f = g1.parent
.
编辑:实际上,虽然这允许您从 /
访问组,但新的 f
将引用 组 /
,不是文件。因此,您无法使用 f
关闭文件或访问任何其他文件属性。
您可以使用群组的 file
属性:
f = g1.file
根据 docs 的 Group
属性:
file
File instance in which this group resides.
我使用
在 ipython 中打开了一个 hdf5 文件import h5py as h5
f = h5.File("fname.h5", "r")
然后我访问了那个文件中的一个组
g1 = f['group1']
然后我不小心用另一个文件覆盖了f
。第一个文件仍然打开,我可以访问 g1
中的内容,但我无法访问 f
中的任何其他组。有没有办法使用 g1
来取回文件对象?当然我也可以直接关闭文件再打开,但是我想知道有没有别的办法
不确定这个问题是否值得存在,但我找到了答案。组有一个指向父级的 parent
属性。要获取原始文件,只需使用 f = g1.parent
.
编辑:实际上,虽然这允许您从 /
访问组,但新的 f
将引用 组 /
,不是文件。因此,您无法使用 f
关闭文件或访问任何其他文件属性。
您可以使用群组的 file
属性:
f = g1.file
根据 docs 的 Group
属性:
file
File instance in which this group resides.