При попытке записать стандартный вывод из скрипта Python в текстовый файл ( python script.py > log
) текстовый файл создается при запуске команды, но фактическое содержимое не записывается до тех пор, пока скрипт Python не завершится. Например:
script.py:
import time
for i in range(10):
print('bla')
time.sleep(5)
выводит на стандартный вывод каждые 5 секунд при вызове с помощью python script.py
, но когда я вызываю python script.py > log
, размер файла журнала остается нулевым, пока сценарий не завершится. Можно ли напрямую записывать в файл журнала, чтобы вы могли следить за ходом сценария (например, используя tail
)?
РЕДАКТИРОВАТЬ Оказывается, что python -u script.py
делает трюк, я не знал о буферизации стандартного вывода.