Убедитесь, что моя программа не выполняет одновременную запись в файл

Я пишу сценарий, необходимый для безопасной записи в любой файл, то есть добавляю файл, если не известно, что в него записывается другой процесс. Мое понимание теории состояло в том, что одновременные записи были предотвращены с помощью блокировок записи в файловой системе, но на практике это не так.

Вот'Как настроить мой тестовый пример: я перенаправляю вывод команды ping:

ping 127.0.0.1 > fileForSafeWrites.txt

С другой стороны, у меня есть следующий код Python, пытающийся записать в файл:

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

Запуск одновременно обоих процессов завершается изящно. я вижу этоfileForSafeWrites.txt превратился в файл с двоичным содержимым вместо блокировки записи, созданной первым процессом, который защищает его от записи в код Python.

Как заставить один или оба моих параллельных процесса не мешать друг другу? Я читал, что люди советуют возможность получить дескриптор файла записи в качестве доказательства того, что файл записывается в безопасный, например, вhttps://stackoverflow.com/a/3070749/1309045

Это поведение специфично для моей операционной системы и Python. Я использую Python2.7 в среде Ubuntu 12.04.

Ответы на вопрос(2)

Ваш ответ на вопрос