import numpy as np import struct def read_int(fobj): return int.from_bytes(fobj.read(4), byteorder='little') def read_float32(fobj): return struct.unpack('<f', fobj.read(4))[0] def read_float64(fobj): return struct.unpack('<d', fobj.read(8))[0] def read_floats32(fobj, num=1): floats = [] for nfloat in range(num): floats += [struct.unpack('<f', fobj.read(4))[0]] return np.array(floats) def read_floats64(fobj, num=1): floats = [] for nfloat in range(num): floats += [struct.unpack('<d', fobj.read(8))[0]] return np.array(floats) def read_str(fobj, length): return fobj.read(length).decode("utf-8")