STINNER Victor <[email protected]> added the comment:
Begin by removing the dest file is maybe not the safer approach :-) Here is a
new try: begin by renaming the dest file to a new file.
------
# use maybe a PRNG instead of a dummy counter or tempfile
def _create_old_filename(filename):
old = filename + '.old'
index = 2
while os.path.exists(old):
old = filename + '-%s.old' % index
index += 1
return old
if os.name in ('nt', 'ce'):
def atomic_rename(src, dst):
if os.path.exists(dst):
old = _create_old_filename(dst)
rename(dst, old)
rename(src, dst)
unlink(old)
else:
rename(src, dst)
else:
atomic_rename = os.rename
------
What can we do if "rename(src, dst)" fails?
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue8828>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com