Garantindo que meu programa não esteja executando uma gravação simultânea de arquivos

Estou escrevendo um script que é necessário para executar gravações seguras em qualquer arquivo, ou seja, anexar um arquivo se nenhum outro processo estiver gravado nele. Meu entendimento da teoria era que gravações simultâneas eram impedidas usando bloqueios de gravação no sistema de arquivos, mas parece não ser o caso na prática.

Aqui está como eu configuro meu caso de teste: Estou redirecionando a saída de um comando ping:

ping 127.0.0.1 > fileForSafeWrites.txt

Por outro lado, tenho o seguinte código python tentando gravar no arquivo:

handle = open('fileForSafeWrites.txt', 'w')
handle.write("Probing for opportunity to write")
handle.close()

Executando simultaneamente, ambos os processos são concluídos normalmente. eu vejo issofileForSafeWrites.txt se transformou em um arquivo com conteúdo binário, em vez de um bloqueio de gravação emitido pelo primeiro processo que o impede de ser gravado pelo código Python.

Como forço um ou ambos os meus processos simultâneos a não interferir um com o outro? Eu li que as pessoas aconselham a capacidade de obter um identificador de arquivo de gravação como prova de que o arquivo está sendo gravado como seguro, como emhttps://stackoverflow.com/a/3070749/1309045

Esse comportamento é específico ao meu sistema operacional e Python. Eu uso o Python2.7 em um ambiente Ubuntu 12.04.

questionAnswers(2)

yourAnswerToTheQuestion