hdf5 データセットに行を明示的に追加することはできませんが、新しいデータに対応するためにデータセットを「サイズ変更」できる方法でデータセットを作成するときに maxshape キーワードを有利に使用できます。( http://docs.h5py.org/en/latest/faq.html#appending-data-to-a-datasetを参照)
データセットの列数が常に同じであると仮定すると、コードは次のようになります。
import h5py
output_file = h5py.File('your_output_file.h5', 'w')
#keep track of the total number of rows
total_rows = 0
for n, f in enumerate(file_list):
your_data = <get your data from f>
total_rows = total_rows + your_data.shape[0]
total_columns = your_data.shape[1]
if n == 0:
#first file; create the dummy dataset with no max shape
create_dataset = output_file.create_dataset("Name", (total_rows, total_columns), maxshape=(None, None))
#fill the first section of the dataset
create_dataset[:,:] = your_data
where_to_start_appending = total_rows
else:
#resize the dataset to accomodate the new data
create_dataset.resize(total_rows, axis=0)
create_dataset[where_to_start_appending:total_rows, :] = your_data
where_to_start_appending = total_rows
output_file.close()