有没有办法快速将指定的表提取到不同的 HDF5 文件中?

Is there a way to quickly extract specified tables into a different HDF5 file?

我试图解决的问题如下 - 我有一个很长的 运行 Python(可能需要很多小时才能完成)过程,最多可生成 80000 个 HDF5 文件。由于瓶颈之一是不断打开和关闭这些文件,我决定编写一个概念验证代码,使用单个 HDF5 文件作为包含许多表的输出。这当然有帮助,但我想知道是否有一种快速(呃)的方法可以将指定的表(如果可能的话重命名)导出到一个单独的文件中?

是的,至少有 3 种方法可以将数据集的内容从一个 HDF5 文件复制到另一个文件。它们包括:

  1. h5copy 来自 HDF Group 的命令行实用程序。您指定源和目标 HDF5 文件,以及源和目标对象。很可能这完全符合您的要求,无需大量编码。
    参考:HDF Group: H5Copy docs
  2. h5py 模块有一个 copy() 方法用于分组 and/or 数据集。您输入源对象和目标对象。
  3. pytables 模块(又名表)有一个 copy_node() 方法。一个节点是一组 and/or 一个数据集。您输入源对象和目标对象。

如果您选择使用 h5py,SO 上有几个相关帖子: