How to read HDF5 files in Python

I am trying to read data from hdf5 file in Python. I can read the hdf5 file using h5py, but I cannot figure out how to access data within the file.

My code

    import h5py    
    import numpy as np    
    f1 = h5py.File(file_name,'r+')

This works and the file is read. But how can I access data inside the file object f1?

Read HDF5

    import h5py
    filename = 'file.hdf5'

    with h5py.File(filename, 'r') as f:
        # List all groups
        print("Keys: %s" % f.keys())
        a_group_key = list(f.keys())[0]

        # Get the data
        data = list(f[a_group_key])

Write HDF5

    #!/usr/bin/env python
    import h5py

    # Create random data
    import numpy as np
    data_matrix = np.random.uniform(-1, 1, size=(10, 3))

    # Write data to HDF5
    with h5py.File('file.hdf5', 'w') as data_file:
        data_file.create_dataset('group_name', data=data_matrix)

See h5py docs for more information.


For your application, the following might be important:

  • Support by other programming languages
  • Reading / writing performance
  • Compactness (file size)

See also: Comparison of data serialization formats

In case you are rather looking for a way to make configuration files, you might want to read my short article Configuration files in Python