fileutil: add move_into_place(), to perform the standard unix trick of atomically replacing a file, with a fallback for windows

This commit is contained in:
Brian Warner 2009-02-18 23:13:10 -07:00
parent b949ea4f32
commit 89f041ac83

View File

@ -10,7 +10,7 @@
Futz with files like a pro.
"""
import exceptions, os, stat, tempfile, time
import sys, exceptions, os, stat, tempfile, time
from twisted.python import log
@ -195,3 +195,10 @@ def du(basedir):
size += os.path.getsize(fn)
return size
def move_into_place(source, dest):
"""Atomically replace a file, or as near to it as the platform allows.
The dest file may or may not exist."""
if "win32" in sys.platform.lower():
remove_if_possible(dest)
os.rename(source, dest)