Сообщить об ошибке.

Прокрутка длинного текста в терминале с модулем click в Python.

Функция прокрутки текста click.echo_via_pager().

Иногда, бывает необходимо показать длинные тексты в терминале (например длинная справка по сценарию) и позволить пользователю прокручивать его. Такое поведение может быть достигнуто с помощью функции click.echo_via_pager(), которая работает аналогично функции click.echo(), но всегда записывает вывод в stdout и, если возможно, через пейджер (прокрутку текста).

import click

@click.command()
def test():
    text = "\n".join(f"Line {idx}" for idx in range(200))
    click.echo_via_pager(text)

if __name__ == '__main__':
    test()

Если необходимо использовать пейджер (прокрутку текста) для большого количества текста, особенно если его генерация займет много времени, то можно передать генератор или функцию генератора этого текста, вместо строки:

import click

def _generate_output():
    for idx in range(50000):
        yield f"Line {idx}\n"

@click.command()
def test():
    click.echo_via_pager(_generate_output())

if __name__ == '__main__':
    test()