When parsing aims.out files, it would be beneficial to avoid reading the whole file into memory before operating on it, as this will cause out of memory errors for large aims.out files.
Instead we could potentially check the size of aims.out before reading it, then if it is over a certain size, then perform operations with the context manager still open and not do out_lines = f.readlines()