En programación distribuida, multiproceso, etc ... se da muchas veces la circunstancia de que varios hilos/procesos requieran escribir en un mismo fichero al mismo tiempo.
En Linux (y otros S.O. que cumplan posix) contamos con llamadas fcntl que nos proporcionan funcionalidades para efectuar un Lock a fichero.
import fcntl
# Abrimos el fichero que necesita acceso concurrente
fp = open('fichero_acceso_concurrente', 'w')
# Efectuamos el Lock
fcntl.flock(fp.fileno(), fcntl.LOCK_EX)
# Ahora podemos escribir sin miedo
fp.writelines('datos a escribir')
# Desactivamos el Lock
fcntl.flock(fp.fileno(), fcntl.LOCK_UN)
# Cerramos el fichero para guardar los cambios
fp.close()