Гайд - Проверено - Фишки которые вы должны знать | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Гайд Проверено Фишки которые вы должны знать

IMPULSE

Миддл
Автор темы
9 Янв 2023
56
17
0
Если вы часто пишете консольные приложения, которые общаются с пользователем с помощью `print()` и `input()`, то наверняка сталкиваетесь с рядом проблем:
1. Вывод в терминал довольно невзрачный, не хватает наглядности;
2. Приходится вручную возиться с форматированием текста, особенно если нужно вывести на экран таблицу;
3. Вызовы `input()` приходится заворачивать в циклы и обвешивать проверками, чтобы повторно запрашивать у пользователя данные, если он ошибся.

Можно каждый раз вручную решать плюс-минус одинаковые проблемы. А можно вместо этого сконцентрироваться на сути программы, а всю рутину свалить на готовые библиотеки. В текущем посте рассмотрим библиотеки, упрощающие вывод (print), а в следующем посте поработаем со вводом (input).

Все эти библиотеки будем устанавливать через терминал с помощью вот такой команды:
pip install [имя_пакета]
Предполагается, что вы уже умеете работать с терминалом, поэтому останавливаться на этом не будем. Если ещё не умеете, то поступайте по-программистски: заваривайте чай/кофе и открывайте Google.
tabulate
Вывод данных в табличном виде - это очень распространённая задача.
Например, у вас есть список пользователей:
Фишки Python: сезон 1, серия 1. Работа с консолью Программирование, Python, IT, Длиннопост
И вы хотите вывести его в виде аккуратной таблицы:
Фишки Python: сезон 1, серия 1. Работа с консолью Программирование, Python, IT, Длиннопост
Для того, чтобы столбцы таблицы выглядели красиво, придётся рассчитать максимальную ширину для каждого столбца, а затем использовать её при форматировании.

Но есть и другой вариант: просто воспользоваться готовой библиотекой tabulate.

Установка:
Использование:
Фишки Python: сезон 1, серия 1. Работа с консолью Программирование, Python, IT, Длиннопост
Функция tabulate() имеет много разных параметров, с помощью которых можно менять внешний вид таблицы. Ознакомиться с подробностями можно в документации.

Код примера в удобном виде можно забрать здесь.
tqdm
Что может быть лучше, чем запустить какой-нибудь гигацикл на миллионы итераций и смотреть за тем, как прогресс-бар плавно двигается к 100%?

Визуализировать выполнение цикла можно с помощью библиотеки tqdm.

Установка:
Использование:
Фишки Python: сезон 1, серия 1. Работа с консолью Программирование, Python, IT, Длиннопост
Документация здесь.

Код примера в удобном виде можно забрать здесь.
rich
С помощью этой библиотеки можно здорово оживить терминал, сделав вывод более красивым и ярким.

Установка:
Использование:
Фишки Python: сезон 1, серия 1. Работа с консолью Программирование, Python, IT, Длиннопост
Возможности rich не ограничиваются простым форматированием текста. Это очень мощная библиотека. С помощью rich вы можете отрисовать прогресс-бар наподобие того, который отрисовывался с помощью tqdm. Можете отображать статус выполнения задачи, отрисовывать файловую структуру в наглядном виде и так далее. На изучение может уйти немало времени, но оно того стоит. Документация здесь.

Код примера в удобном виде можно забрать здесь.
Хотите что-то добавить?
Если вы знаете ещё какую-то интересную библиотеку, с помощью которой можно упростить работу с терминалом, то пожалуйста, поделитесь с остальными в комментариях. Если ваш комментарий получит хороший отклик, то в следующих постах можно будет отдельно разобрать эту библиотеку. Работу со вводом (input) пока что не затрагиваем, она будет рассматриваться в следующем посте.

Если у вас есть свои наработки для упрощения вывода в консоль, то тоже было бы интересно посмотреть :) Для отправки кода можно использовать Codepile или подобный сервис.

(копипаст)
 
Like
  • 2
Реакции: 1 users
Активность:
Пока что здесь никого нет