Inclided function to copy an entired h5 file in a group. Useful when integrating h5 files into new ones.

This commit is contained in:
2024-02-15 16:01:15 +01:00
parent e7bdee21da
commit a6400b9ac4

View File

@@ -10,6 +10,9 @@ from igor2.binarywave import load as loadibw
import os
import tempfile
import shutil
import h5py
ROOT_DIR = os.path.abspath(os.curdir)
def read_xps_ibw_file_as_dict(filename):
@@ -48,6 +51,24 @@ def read_xps_ibw_file_as_dict(filename):
return file_dict
def copy_file_in_group(source_file_path, dest_file_obj : h5py.File, dest_group_name):
# Create copy of original file to avoid possible file corruption and work with it.
pathtail, filename = os.path.split(source_file_path)
backup_filename = 'backup_'+ filename
# Path
ROOT_DIR = os.path.abspath(os.curdir)
tmp_dirpath = os.path.join(ROOT_DIR,'tmp_files')
if not os.path.exists(tmp_dirpath):
os.mkdir(tmp_dirpath)
shutil.copy(source_file_path, os.path.join(tmp_dirpath,backup_filename))
# Open backup h5 file and copy complet filesystem directory onto a group in h5file
with h5py.File(os.path.join(tmp_dirpath,backup_filename),'r') as src_file:
dest_file_obj.copy(source= src_file['/'], dest= dest_group_name +'/'+filename)
def main():