I have code like this:
with open(\'foo.txt\') as file:
...do something with file...
...move foo.txt to another place while it\'s still open...
This depends on the operating system. In Unix-based systems this is generally safe (you can move or even delete file while still having it open). Windows will produce Access Denied error if you try to move/delete an opened file.
So yes, the safest and portable way is to close the file first. Note that with
clause closes the file automatically, so all you need is to perform the move outside of with
block.