Расширенный вывод в терминале
Стилизуйте вывод CLI с помощью rich
«Расширенный вывод в терминале» — бесплатный урок Python Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.
Что такое rich?
rich — сторонняя библиотека для красивого вывода в терминале: цветов, стилей, таблиц, индикаторов выполнения и многого другого. Установите её с помощью pip install rich.
from rich import print
print('Hello, [bold magenta]world[/bold magenta]!')Объект Console
Центральным классом является Console. Его метод print понимает разметку стилей, а также обрабатывает переносы строк и определение цвета.
from rich.console import Console
console = Console()
console.print('Styled output here')
Разметка стилей
rich использует разметку в квадратных скобках, например [bold], [red], [italic], чтобы оформлять фрагменты текста прямо в строке; разметка закрывается соответствующим тегом.
from rich.console import Console
console = Console()
console.print('[bold red]Error:[/bold red] something failed')
console.print('[green]Success[/green]')
Параметр стиля
Вместо разметки можно передать параметр style, который применится ко всей строке.
from rich.console import Console
console = Console()
console.print('Important notice', style='bold yellow on blue')
Таблицы
Класс Table создаёт аккуратные таблицы с рамками. Добавьте столбцы, затем строки и выведите таблицу.
from rich.console import Console
from rich.table import Table
table = Table(title='Users')
table.add_column('Name')
table.add_column('Age')
table.add_row('Ana', '30')
table.add_row('Bob', '25')
Console().print(table)
Панели
Panel рисует рамку вокруг содержимого; это удобно для выделения сообщений или группировки вывода.
from rich.console import Console
from rich.panel import Panel
Console().print(Panel('All systems go', title='Status'))
Индикаторы выполнения
rich умеет отображать индикаторы выполнения в реальном времени. track() оборачивает любой итерируемый объект и отображает ход обработки его элементов.
from rich.progress import track
import time
for _ in track(range(5), description='Working'):
time.sleep(0.1)
Красивый вывод данных
console.print выводит словари и списки с подсветкой синтаксиса и отступами, что гораздо понятнее обычного print.
from rich.console import Console
data = {'name': 'Ana', 'roles': ['admin', 'user'], 'active': True}
Console().print(data)
Журналирование и трассировки
rich предлагает более удобные трассировки с помощью rich.traceback.install() и обработчик журналирования, благодаря чему сообщения об ошибках становится гораздо легче читать.
from rich.traceback import install
install()
# Now uncaught exceptions print with rich, colorized formatting
Разделители и компоновка
console.rule() рисует горизонтальный разделитель с необязательным заголовком; это удобно для разделения длинного вывода на разделы.
from rich.console import Console
console = Console()
console.rule('[bold]Report[/bold]')
console.print('section content')
Объединение rich с Click
rich отлично сочетается с Click: Click организует команды, а rich стилизует вывод, создавая отполированные профессиональные CLI.
import click
from rich.console import Console
console = Console()
@click.command()
@click.argument('name')
def hello(name):
console.print('Hello [bold]' + name + '[/bold]!')
Быстрая проверка
Проверьте своё понимание rich.
Итоги
Вы изучили вывод в терминале с помощью rich:
Consoleвыводит данные с разметкой стилей в квадратных скобках и параметромstyle.Table,Panelиruleструктурируют вывод;trackпоказывает ход выполнения.- rich красиво выводит данные и улучшает вид трассировок.
- Это внешняя библиотека, которая хорошо сочетается с Click.
Вы завершили курс по инструментам CLI!
Часто задаваемые вопросы
Урок «Расширенный вывод в терминале» бесплатный?
Да — полный текст урока «Расширенный вывод в терминале» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.
Чему я научусь в уроке «Расширенный вывод в терминале»?
Стилизуйте вывод CLI с помощью rich Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Python Academy?
Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Расширенный вывод в терминале»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Python Academy?
Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы argparse
- Подкоманды и параметры
- Библиотека Click
- Расширенный вывод в терминале