safe simultaneous file append?
Dale Strickland-Clark
dale at riverhall.NOSPAMco.uk
Mon Oct 8 04:46:52 EDT 2001
Graham Guttocks <graham_guttocks at yahoo.co.nz> wrote:
>Greetings,
>
>Given the following code, is there any danger of the logfile being
>corrupted if two copies of this code try to append at the same time?
>
> file = open('logfile.txt','a+')
> file.write('testing' + '\n')
> file.close()
>
>If so, how do I guard against this? This is on UNIX BTW.
>
>Regards,
>Graham
Yes. You can't append to a file from two different places at once. You
have a few choices:
1. A log daemon. You tell it it write a record (using a named pipe, or
similar approach) and it looks after the file.
2. A log routine that locks the file during write. If it's already
locked, wait until the lock is released.
3. A log directory. Each process uses its own randomly named file but
use time-stamped records. Sort/merge it all at the end of a day (or
whenever).
There are probably others.
--
Dale Strickland-Clark
Riverhall Systems Ltd
More information about the Python-list
mailing list