STINNER Victor <victor.stin...@haypocalc.com> 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 <rep...@bugs.python.org> <http://bugs.python.org/issue8828> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com