Я довольно новичок в Python, но я столкнулся со странным поведением, которое не могу объяснить / решить. По сути, мне нужно перенаправить вывод сценария python в файл.
Пример:
while True:
print('tick')
time.sleep(5)
, а затем перенаправить вывод в файл
python test.py >> test.log 2>&1
Но вещь является ли файл пустым, пока скрипт не будет завершен. Похоже, что он записывает вывод в некоторый буфер и только в конце отправляет этот буфер в файл.
Это совершенно неприемлемо для меня, так как у меня есть скрипт, который работает 24/7, и в этом случае, Я никогда не буду получать надлежащие журналы. Мне нужно в режиме реального времени записывать в файл.
Я знаю, что это можно исправить с помощью
with open('test.log', mode='a') as log_file:
Но в этом случае я потеряю возможность просматривать результат в терминале. Кроме того, я буду строго ограничен файлом, указанным внутри скрипта.
Полагаю, это не проблема Python, а более общая c. Тем не менее, возможно ли выполнить мгновенную запись в файл, как я вижу это в терминале?