Невозможно увидеть обновления, использующие `less + F` для файла, записываемого Python - PullRequest
0 голосов
/ 24 ноября 2018

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

Поэтому, пока моя программа работает, я хочу проверить, записываются или не используются данные:

$ less +F C.csv

Я замечаю, что во время работы моей программы я не вижулюбой вывод записывается в C.csv, но как только я даю сигнал CTRL+C, внезапно в файле C.csv появляется много записей.

Теперь я знаю, что дисковый ввод-выводкак правило, буферизируется, и, вероятно, программа будет ожидать заполнения буфера, прежде чем она фактически запишет его в файл (это мое предположение).Итак, я гуглил, как проверить размер буфера, который предложил мне следующий метод:

import io
print (io.DEFAULT_BUFFER_SIZE)

Это возвращает 8192 (байт) в моей машине.Я думал, что запись будет происходить только тогда, когда записываемые данные не помещаются в буфер, т. Е. Когда размер данных пересекает 8192 байт.Но когда я проверяю размер C.csv после CTRL+C, он показывает 236540 байт.

Как столько данных помещается в буфер?Или что-то еще происходит?

...