У меня есть сценарий, выход которого отправлен в less
, и я хотел бы, чтобы сценарий печатал свои заявления в less
, поскольку они приходят, а не все сразу.Последствия стирания stdout после каждой печати
Я обнаружил, что если я запустил stdout (через sys.stdout.flush()
) после каждой печати, линия отображается в less
при промывке (очевидно).
Мой вопрос: Есть ли недостатки в этом? Мой скрипт содержит сотни тысяч строк, напечатанных, будет промывать после каждой строки вызвать проблемы?
У меня сложилось впечатление, да, потому что вы берете дополнительные ресурсы для отображения каждый раз, когда вы вровень, а также полностью обходя идею буферизованного вывода
Python может сказать, что он автоматически очищает все. Я бы предпочел воспользоваться этим, вместо того, чтобы сделать ваш код длиннее. –
См. Аргумент '-u' интерпретатору Python и переменной окружения' PYTHONUNBUFFERED'; оба документа задокументированы на https://docs.python.org/2/using/cmdline.html –
@CharlesDuffy Спасибо за подсказку, я посмотрю! – Jeeter