Обеспечивает ли запись файла на диск с помощью Python open (). Write () доступность данных для других процессов?

Один процесс Python записывает обновления статуса в файл для чтения другими процессами. В некоторых случаях обновления статуса происходят многократно и быстро в цикле. Самый простой и быстрый подход - использовать open (). Write () в одной строке:

open(statusfile,'w').write(status) 

Альтернативный подход с четырьмя строками, которые принудительно записывают данные на диск. Это приводит к значительному снижению производительности:

f = open(self.statusfile,'w')

f.write(status)

os.fsync(f)

f.close()

Я не пытаюсь защитить себя от сбоя ОС. Итак, заставляет ли этот подход данные помещаться в буфер ОС, чтобы другие процессы считывали самые новые данные о состоянии при открытии файла с диска? Или мне нужно использовать os.fsync ()?

8
задан tahoar 31 October 2011 в 15:19
поделиться