diff --git a/field.py b/field.py index 4b48c9a..b13e2da 100644 --- a/field.py +++ b/field.py @@ -135,7 +135,7 @@ class Field3d: def save(self,file,name='Field3d',truncate=False): import h5py - is_open = isinstance(file,h5py.File) + is_open = isinstance(file,(h5py.File,h5py.Group)) flag = 'w' if truncate else 'a' f = file if is_open else h5py.File(file,flag) g = f.create_group(name) diff --git a/helper.py b/helper.py index 2c21422..3ed71b5 100644 --- a/helper.py +++ b/helper.py @@ -64,4 +64,21 @@ def load_matv73(f,var,squeeze=True,cast_string=True,cast_integer=False): squeeze=squeeze, cast_string=cast_string, cast_integer=cast_integer) - return d \ No newline at end of file + return d + +def h5write(file,arr,name='data',truncate=True): + import h5py + is_open = isinstance(file,(h5py.File,h5py.Group)) + flag = 'w' if truncate else 'a' + f = file if is_open else h5py.File(file,flag) + f.create_dataset(name,data=arr) + if not is_open: f.close() + return + +def h5read(file,name='data'): + import h5py + is_open = isinstance(file,(h5py.File,h5py.Group)) + f = file if is_open else h5py.File(file,'r') + data = f[name][:] + if not is_open: f.close() + return data \ No newline at end of file