Indeed it looks ok after reading it in - here is the output of the code
auto sites = Exciton(N,{"on_site_dim", dim});
Print(sites);
readFromFile(format("sites_file_NB_%d",N),sites);
Print(sites);
sites =
SiteSet:
site 1 = (21|id=524|n=1,Site,Exciton)
site 2 = (21|id=576|n=2,Site,Exciton)
site 3 = (21|id=420|n=3,Site,Exciton)
sites =
SiteSet:
site 1 = (21|id=787|n=1,Site,Exciton)
site 2 = (21|id=131|n=2,Site,Exciton)
site 3 = (21|id=147|n=3,Site,Exciton)
And yes, it is the toMPO line that is the last line run.