все Python 3Файлы и I/Oфункция
io.IOBase.flush()
буфер
Принудительно сбрасывает внутренний буфер записи в файл или поток. Полезно, если нужно убедиться, что данные записаны немедленно.
Синтаксис
file.flush()
Закрытие файла (в том числе выход из блока with) сбрасывает буфер само, поэтому явный flush() нужен редко — в основном когда процесс работает долго и данные должен увидеть кто-то другой: лог в реальном времени, файл, который параллельно читает другая программа. И flush() отдаёт данные операционной системе, а не гарантированно на диск: если важно пережить внезапное выключение питания, после него зовут os.fsync(file.fileno()).
Примеры
import sys
# немедленный вывод без буферизации
print('загрузка...', end='', flush=True)
import os, sys
# или явно:
sys.stdout.write('статус')
sys.stdout.flush()
with open('log.txt', 'w') as f:
f.write('событие')
f.flush() # данные отданы ОС, но ещё не обязательно на диске
os.fsync(f.fileno()) # а вот теперь — на диске
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности