簡體   English   中英

如何連接給定目錄中的所有 HDF5 文件?

[英]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 文件? 有沒有辦法解決我的方法?

您可以將ipythonh5py 模塊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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM