У меня есть код 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
байт.
Как столько данных помещается в буфер?Или что-то еще происходит?