Python 如何连接给定目录中的所有HDF5文件?
我在一个目录中有许多HDF5文件,我想将它们连接起来。我尝试了以下方法:Python 如何连接给定目录中的所有HDF5文件?,python,hdf,Python,Hdf,我在一个目录中有许多HDF5文件,我想将它们连接起来。我尝试了以下方法: from glob import iglob import shutil import os PATH = r'C:\Dropbox\data_files' destination = open('data.h5','wb') for filename in iglob(os.path.join(PATH, '*.h5')): shutil.copyfileobj(open(filename, 'rb'), d
from glob import iglob
import shutil
import os
PATH = r'C:\Dropbox\data_files'
destination = open('data.h5','wb')
for filename in iglob(os.path.join(PATH, '*.h5')):
shutil.copyfileobj(open(filename, 'rb'), destination)
destination.close()
但是,这只会创建一个空文件。每个HDF5文件包含两个数据集,但我只关心获取第二个数据集(每个数据集的名称相同)并将其添加到新文件中
有没有更好的方法连接HDF文件?有没有办法修复我的方法?您可以与和工具结合使用
安装h5copy ahd h5py后,只需打开存储所有.h5文件的文件夹中的ipython控制台,并使用此代码将它们合并到output.h5
文件中:
import h5py
import os
d_names = os.listdir(os.getcwd())
d_struct = {} #Here we will store the database structure
for i in d_names:
f = h5py.File(i,'r+')
d_struct[i] = f.keys()
f.close()
for i in d_names:
for j in d_struct[i]:
!h5copy -i '{i}' -o 'output.h5' -s {j} -d {j}
这并不那么简单。看看这里和这里:我看过那个帖子,但不确定这个方法到底是如何工作的。你解决过这个问题吗?如果你有,你能发布一个自我回答吗?如果没有,你能解决它吗?