parent
b7f1cbaa5c
commit
a3add89f5a
1 changed files with 64 additions and 0 deletions
@ -0,0 +1,64 @@ |
||||
# |
||||
# wpylib.iofmt.hdf5 module |
||||
# Created: 20150401 |
||||
# Wirawan Purwanto |
||||
# |
||||
""" |
||||
HDF5 binary format support, using h5py. |
||||
|
||||
""" |
||||
|
||||
import h5py |
||||
import numpy |
||||
import sys |
||||
|
||||
|
||||
# Quickie functions |
||||
|
||||
def hdf5_read_value(filename, key): |
||||
"""Single-value read action from a file. |
||||
Raises KeyError if the item does not exist. |
||||
""" |
||||
F = h5py.File(filename, 'r') |
||||
try: |
||||
val = F[key].value |
||||
except KeyError: |
||||
F.close() |
||||
raise |
||||
F.close() |
||||
return val |
||||
|
||||
|
||||
def hdf5_write_value(filename, key, value): |
||||
"""Single-value write action from a file. |
||||
Overwrites the existing value, if it exists. |
||||
Raises an exception upon error. |
||||
""" |
||||
F = h5py.File(filename, 'a') |
||||
try: |
||||
if key in F: |
||||
del F[key] |
||||
F[key] = value |
||||
except: |
||||
F.close() |
||||
raise |
||||
F.close() |
||||
|
||||
|
||||
def hdf5_write_values(filename, keyvals): |
||||
"""Multiple-value write action to a file. |
||||
The key-value pairs are specified as a dict. |
||||
Overwrites the existing value, if it exists. |
||||
Raises an exception upon error. |
||||
""" |
||||
F = h5py.File(filename, 'a') |
||||
try: |
||||
for (key,value) in keyvals.iteritems(): |
||||
if key in F: |
||||
del F[key] |
||||
F[key] = value |
||||
except: |
||||
F.close() |
||||
raise |
||||
F.close() |
||||
|
Loading…
Reference in new issue