#!/usr/bin/env python3
import struct
import numpy as np
from pathlib import Path

def undump(fn):
    with open(fn, 'rb') as df:
        dims = struct.unpack('=QQQQ', df.read(8*4))
        (dsz,) = struct.unpack('=Q', df.read(8))
        ## assume f32
        data = df.read(dsz)
        data = [i for (i,) in struct.iter_unpack('=f', data)]
        return np.array(data).reshape(dims).squeeze()

if __name__ == '__main__':
    for dfn in sorted(Path('.').glob('*.dump')):
        darr = undump(dfn)
        print(f'{dfn}: {darr.shape}\n{darr}')