Проверка того, что файл готов для чтения в py3k - PullRequest
1 голос
/ 13 февраля 2012

Я пишу в файл для другой программы (gnuplot) для использования в качестве ввода.

g = open('test.gnuplot', 'w')
g.write("[snip]")
g.close()

os.system("sleep 1")
os.system("gnuplot test.gnuplot")

Если я опущу, sleep 1 gnuplot генерирует искаженный файл - по-видимому, потому что файл, который я только что написал, еще не «готов» (если я ошибаюсь, скажите, пожалуйста, в чем причина).

Полагаю, есть более элегантный способ ожидания готовности файла к чтению, что это?

1 Ответ

1 голос
/ 14 февраля 2012

Попробуйте:

g = open('test.gnuplot', 'w')
g.write("[snip]")
g.flush()
os.fsync(g.fileno()) 
os.system("gnuplot test.gnuplot")

И заберите os.system("sleep 1").Я думаю, что буфер еще не записан в файл.См. Документацию по питону fsync .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...