Safely renaming a file without overwriting

Wolfgang Draxinger wdraxinger at darkstargames.de
Sat Oct 28 18:02:51 CEST 2006


Diez B. Roggisch wrote:

>> 1: Open the file with os.open
>> 
>> 2: Lock the file exclusively -> no other process can now
>> access it.
>> 
>> 3: Use rename to rename the file; this causes a file system
>> level implicit unlink of the old file (it dissappears from the
>> file system) but the opening process can still access it.
>> 
>> 4: close the file -> the lock is removed and the rename
>> finalized.

The open is to happen on the new file name with O_CREAT | O_EXCL
flags. Sorry, I forgot that to mention explicitly. However I
have not tried it yet, but it should work.

Wolfgang Draxinger
-- 
E-Mail address works, Jabber: hexarith at jabber.org, ICQ: 134682867
GPG key FP: 2FC8 319E C7D7 1ADC 0408 65C6 05F5 A645 1FD3 BD3E



More information about the Python-list mailing list