How can I save and close and reopen a blend file with a script?
Just call save_as_mainfile() and open_mainfile() operators:

import bpy

bpy.ops.wm.save_as_mainfile(filepath=bpy.data.filepath)
bpy.ops.wm.open_mainfile(filepath=bpy.data.filepath)