如何使用python合并多个.h5文件(但形状相同)?
我有10,000个.h5文件用于3D点云。
它们具有相同的形状。
我想合并(或合并)2000个文件,所以我总共可以有5个大的.h5文件。 (例如python中的append()函数)
我从h5py(http://docs.h5py.org/en/latest/high/group.html)找到了copy()函数。
但是,我无法将这种方法应用于我的问题。
请参考示例代码或帮助我解决问题。
对不起,我的英语水平很差。
答案 0 :(得分:0)
您可以简单地执行以下操作(未经测试但应该可以):
import h5py
def copy(dest, name):
g = dest.require_group(name) # create output group with the name of input file
def callback(name, node):
if isinstance(node, h5py.Dataset): # only copy dataset
g.create(name, data=node[:])
with h5py.File('out.h5', 'w') as h5_out:
for f_in in files:
with h5py.File(f_in, 'r') as h5_in:
h5_in.visititems(copy(h5_out, f_in))
这将为每个文件创建一个“文件夹”(HDF5组)并递归复制所有内容。
另请参阅:related question。