[英]How do you concatenate all the HDF5 files in a given directory?
我在一個目錄中有許多 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'), destination)
destination.close()
但是,這只會創建一個空文件。 每個 HDF5 文件都包含兩個數據集,但我只關心獲取第二個數據集(每個文件的名稱相同)並將其添加到新文件中。
有沒有更好的方法來連接 HDF 文件? 有沒有辦法解決我的方法?
您可以將ipython與h5py 模塊和h5copy工具結合使用。
安裝 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}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.