【问题标题】:Can you extract the file object of an hdf5 using a group object?您可以使用组对象提取 hdf5 的文件对象吗?
【发布时间】:2018-12-31 03:15:17
【问题描述】:

我在 ipython 中打开了一个 hdf5 文件,使用

import h5py as h5
f = h5.File("fname.h5", "r")

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

g1 = f['group1']

然后我不小心用另一个文件覆盖了f。第一个文件仍然打开,我可以访问来自g1 的内容,但我无法访问f 中的任何其他组。有没有办法使用g1 来取回文件对象?当然我可以关闭并重新打开文件,但我想知道是否有其他方法。

【问题讨论】:

    标签: python python-2.7 ipython hdf5 h5py


    【解决方案1】:

    您可以使用您群组的file 属性:

    f = g1.file
    

    根据docsGroup 属性:

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

    【讨论】:

    • 是的,这可能比parent 更好,以防您是多个组。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 2013-08-20
      相关资源
      最近更新 更多