为了安全地更新文件,我将更新版本写入临时文件,然后尝试用它覆盖原始文件。在一个shell unix脚本中,我将为此使用mv FROM TO。对于Linux上的python,当目标文件名存在时,函数os.rename和shutil.move执行原子替换操作。在Windows上,它们会失败。这种行为可以由一系列复制、重命名和删除操作来近似,但不能保证这样的自写替换操作可以完成,也可以完全恢复。
是否有可能在Windows上获得可靠的“重命名和覆盖”操作?
在open()和first read()之间对该文件内容进行的外部更新不会在read()内容中返回。如何从read()中获取最新的文件内容?我尝试过flush()和seek(0),但没有帮助。 https://repl.it/repls/RealGreedyTransfer#main.py import time
print("myfoo started", flush=True) # External updates that happen during that time don't