Если вы часто пишете консольные приложения, которые общаются с пользователем с помощью `print()` и `input()`, то наверняка сталкиваетесь с рядом проблем:
1. Вывод в терминал довольно невзрачный, не хватает наглядности;
2. Приходится вручную возиться с форматированием текста, особенно если нужно вывести на экран таблицу;
3. Вызовы `input()` приходится заворачивать в циклы и обвешивать проверками, чтобы повторно запрашивать у пользователя данные, если он ошибся.
Можно каждый раз вручную решать плюс-минус одинаковые проблемы. А можно вместо этого сконцентрироваться на сути программы, а всю рутину свалить на готовые библиотеки. В текущем посте рассмотрим библиотеки, упрощающие вывод (print), а в следующем посте поработаем со вводом (input).
Все эти библиотеки будем устанавливать через терминал с помощью вот такой команды:
tabulate
Вывод данных в табличном виде - это очень распространённая задача.
Например, у вас есть список пользователей:
И вы хотите вывести его в виде аккуратной таблицы:
Для того, чтобы столбцы таблицы выглядели красиво, придётся рассчитать максимальную ширину для каждого столбца, а затем использовать её при форматировании.
Но есть и другой вариант: просто воспользоваться готовой библиотекой tabulate.
Установка:
Функция tabulate() имеет много разных параметров, с помощью которых можно менять внешний вид таблицы. Ознакомиться с подробностями можно в документации.
Код примера в удобном виде можно забрать здесь.
tqdm
Что может быть лучше, чем запустить какой-нибудь гигацикл на миллионы итераций и смотреть за тем, как прогресс-бар плавно двигается к 100%?
Визуализировать выполнение цикла можно с помощью библиотеки tqdm.
Установка:
Документация здесь.
Код примера в удобном виде можно забрать здесь.
rich
С помощью этой библиотеки можно здорово оживить терминал, сделав вывод более красивым и ярким.
Установка:
Возможности rich не ограничиваются простым форматированием текста. Это очень мощная библиотека. С помощью rich вы можете отрисовать прогресс-бар наподобие того, который отрисовывался с помощью tqdm. Можете отображать статус выполнения задачи, отрисовывать файловую структуру в наглядном виде и так далее. На изучение может уйти немало времени, но оно того стоит. Документация здесь.
Код примера в удобном виде можно забрать здесь.
Хотите что-то добавить?
Если вы знаете ещё какую-то интересную библиотеку, с помощью которой можно упростить работу с терминалом, то пожалуйста, поделитесь с остальными в комментариях. Если ваш комментарий получит хороший отклик, то в следующих постах можно будет отдельно разобрать эту библиотеку. Работу со вводом (input) пока что не затрагиваем, она будет рассматриваться в следующем посте.
Если у вас есть свои наработки для упрощения вывода в консоль, то тоже было бы интересно посмотреть :) Для отправки кода можно использовать Codepile или подобный сервис.
(копипаст)
1. Вывод в терминал довольно невзрачный, не хватает наглядности;
2. Приходится вручную возиться с форматированием текста, особенно если нужно вывести на экран таблицу;
3. Вызовы `input()` приходится заворачивать в циклы и обвешивать проверками, чтобы повторно запрашивать у пользователя данные, если он ошибся.
Можно каждый раз вручную решать плюс-минус одинаковые проблемы. А можно вместо этого сконцентрироваться на сути программы, а всю рутину свалить на готовые библиотеки. В текущем посте рассмотрим библиотеки, упрощающие вывод (print), а в следующем посте поработаем со вводом (input).
Все эти библиотеки будем устанавливать через терминал с помощью вот такой команды:
Предполагается, что вы уже умеете работать с терминалом, поэтому останавливаться на этом не будем. Если ещё не умеете, то поступайте по-программистски: заваривайте чай/кофе и открывайте Google.pip install [имя_пакета]
tabulate
Вывод данных в табличном виде - это очень распространённая задача.
Например, у вас есть список пользователей:
И вы хотите вывести его в виде аккуратной таблицы:
Для того, чтобы столбцы таблицы выглядели красиво, придётся рассчитать максимальную ширину для каждого столбца, а затем использовать её при форматировании.
Но есть и другой вариант: просто воспользоваться готовой библиотекой tabulate.
Установка:
Использование:pip install tabulate
Функция tabulate() имеет много разных параметров, с помощью которых можно менять внешний вид таблицы. Ознакомиться с подробностями можно в документации.
Код примера в удобном виде можно забрать здесь.
tqdm
Что может быть лучше, чем запустить какой-нибудь гигацикл на миллионы итераций и смотреть за тем, как прогресс-бар плавно двигается к 100%?
Визуализировать выполнение цикла можно с помощью библиотеки tqdm.
Установка:
Использование:pip install tqdm
Документация здесь.
Код примера в удобном виде можно забрать здесь.
rich
С помощью этой библиотеки можно здорово оживить терминал, сделав вывод более красивым и ярким.
Установка:
Использование:pip install rich
Возможности rich не ограничиваются простым форматированием текста. Это очень мощная библиотека. С помощью rich вы можете отрисовать прогресс-бар наподобие того, который отрисовывался с помощью tqdm. Можете отображать статус выполнения задачи, отрисовывать файловую структуру в наглядном виде и так далее. На изучение может уйти немало времени, но оно того стоит. Документация здесь.
Код примера в удобном виде можно забрать здесь.
Хотите что-то добавить?
Если вы знаете ещё какую-то интересную библиотеку, с помощью которой можно упростить работу с терминалом, то пожалуйста, поделитесь с остальными в комментариях. Если ваш комментарий получит хороший отклик, то в следующих постах можно будет отдельно разобрать эту библиотеку. Работу со вводом (input) пока что не затрагиваем, она будет рассматриваться в следующем посте.
Если у вас есть свои наработки для упрощения вывода в консоль, то тоже было бы интересно посмотреть :) Для отправки кода можно использовать Codepile или подобный сервис.
(копипаст)