code: def read_molden(inputfile, start_index=0, get_bonds=True):
      
      from chemcoord.cartesian_coordinates.cartesian_class_main import Cartesian
      with open(inputfile, 'r') as f:
          found = False
          while not found:
              line = f.readline()
              if '[N_GEO]' in line:
                  found = True
                  number_of_molecules = int(f.readline().strip())
  
          energies = []
          found = False
          while not found:
              line = f.readline()
              if 'energy' in line:
                  found = True
                  for _ in range(number_of_molecules):
                      energies.append(float(f.readline().strip()))
  
          found = False
          while not found:
              line = f.readline()
              if '[GEOMETRIES] (XYZ)' in line:
                  found = True
                  current_line = f.tell()
                  number_of_atoms = int(f.readline().strip())
                  f.seek(current_line)
  
          cartesians = []
          for energy in energies:
              cartesian = Cartesian.read_xyz(
                  f, start_index=start_index, get_bonds=get_bonds,
                  nrows=number_of_atoms, engine='python')
              cartesian.metadata['energy'] = energy
              cartesians.append(cartesian)
      return cartesians
docs: Read a molden file.
  
      Args:
          inputfile (str):
          start_index (int):
  
      Returns:
          list: A list containing :class:`~chemcoord.Cartesian` is returned.