Python Multiple users append to the same file at the same time Python Multiple users append to the same file at the same time python python

Python Multiple users append to the same file at the same time


You can use file locking:

import fcntlnew_entry = "foobar"with open("/somepath/somefile.txt", "a") as g:    fcntl.flock(g, fcntl.LOCK_EX)    g.write(new_entry)    fcntl.flock(g, fcntl.LOCK_UN)

Note that on some systems, locking is not needed if you're only writing small buffers, because appends on these systems are atomic.


If you are doing this operation on Linux, and the cache size is smaller than 4KB, the write operation is atomic and you should be good.

More to read here: Is file append atomic in UNIX?


Depending on your platform/filesystem location this may not be doable in a safe manner (e.g. NFS). Perhaps you can write to different files and merge the results afterwards?