5 библиотек Python для красивого вывода на консоль

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

В этой статье мы рассмотрим некоторые библиотеки, которые позволят вам создавать удобные, элегантные взаимодействия с консолью и вывод для вашего кода.

Использование этих замечательных библиотек поможет вам создавать приложения командной строки, которые понравятся пользователям.

Давайте начнем!


1. tqdm

Первый модуль, возможно, является одной из самых удобных функций, которые вы можете добавить в свой код. Индикатор прогресса! Разве это не расстраивает, когда вы понятия не имеете, сколько времени прошло во время долгого процесса?

Если вы когда-либо устанавливали пакет с помощью pip, вы видели этот модуль в действии.

import tqdm
import time

for _ in tqdm.tqdm(range(100)):
    time.sleep(0.25)

2. colorama

Кто не любит красочный консольный текст? Ошибки отображаются красным цветом, успешные операции — зеленым.

Используя colorama, вы можете раскрасить любой вывод текста и выделить определенные слова, фразы или строки.

from colorama import init
init()
from colorama import Fore, Back, Style
print(Fore.GREEN + 'green text')
print(Back.YELLOW + 'yellow back')
print(Style.BRIGHT + 'bright' + Style.RESET_ALL)
print('default')

3. art

Про art, думаю рассказывать не надо, достаточно посмотреть на это

art
art
from art import tprint

tprint("Python")

4. simple-term-menu

Иногда все, что нужно для упрощения сложного приложения, — это меню. Любите вы их или ненавидите, но меню командной строки могут облегчить жизнь пользователя.

from simple_term_menu import TerminalMenu

menu = TerminalMenu(['yes', 'no', 'maybe', 'so'])
menu.show()

5. tabulate

Печать таблиц вручную с помощью Python в лучшем случае разочаровывает. Заголовки отображаются некорректно, столбцы смещаются влево или вправо... Вы можете облегчить себе жизнь с помощью tabulate.

import tabulate

data = [
    ['id', 'name', 'number'],
    [0, 'Jeff', 1234],
    [1, 'Bob', 5678],
    [2, 'Bill', 9123]
]
results = tabulate.tabulate(data)
print(results)

@Lord_of_Rings
06.01.2023 19:34 UTC
Первоисточник

Комментарии

@jorikdima
06.01.2023 14:38 UTC
+5

Подборка интересная, но уж слишком бегло. Чуть поболее бы примеров с иллюстрациями результатов.

@Lord_of_Rings
06.01.2023 15:06 UTC
0

Учту. Заходите завтра, послезавтра ;-)

06.01.2023 21:50 UTC
0

будет еще статья или эта обновится?

06.01.2023 22:23 UTC
0

Обновится

@Lissov
07.01.2023 08:49 UTC
-2

Попробуйте ChatGPT. Он может выдать интересные примеры, главное понимать, что спрашиваешь.

@shpaker
06.01.2023 15:02 UTC
+2

Подборка не плоха, но как мне - не блещет ничем новым, и от неё немного потягивает рандомным выбором.

@dolfinus
06.01.2023 15:24 UTC
+6

Как можно было не упомянуть Rich?

https://github.com/Textualize/rich

@Lord_of_Rings
06.01.2023 15:29 UTC
0

Все библиотеки упомянуть невозможно, я выбрал самые лучшие (на мой взгляд)

@mr-giz
06.01.2023 15:26 UTC
+10

Для прогресс баров есть замечательная alive-progress. Для форматированного текста, таблиц, маркдауна и подобного rich. И да подборка очень куцая - мало и без примеров.

@Ryav
07.01.2023 18:46 UTC
0

Его же можно извне использовать? Например, на тот же rsync повесить.

@KorP
06.01.2023 15:54 UTC
+2

terminaltables активно использую

@vkflare
06.01.2023 20:11 UTC
+3

Tabulate прекрасен тем, что умеет съедать dataframe. А уже упомянутый выше rich прекрасен во всех смыслах.

@invasy
07.01.2023 08:47 UTC
+3

Про art, думаю рассказывать не надо

Лучше бы рассказать.

У статьи есть плашка «Обзор», но обзора не получилось. Документацию полезнее почитать.

@Choose_Goose
07.01.2023 11:45 UTC
0

simple-term-menu почему то не работает

(

Traceback (most recent call last):
File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\simple_term_menu.py", line 37, in
import termios
ModuleNotFoundError: No module named 'termios'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "D:\ss.py", line 16, in
from simple_term_menu import TerminalMenu
File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\simple_term_menu.py", line 39, in
raise NotImplementedError('"{}" is currently not supported.'.format(platform.system())) from e
NotImplementedError: "Windows" is currently not supported.

)

@Lord_of_Rings
07.01.2023 11:46 UTC
0

На данный момент simple-term-menu работает только на Linux и MacOS

07.01.2023 15:50 UTC
0

Есть аналоги для Windows?

07.01.2023 16:21 UTC
0

Можно попробовать console-menu

20.05.2025 13:36 UTC
0

В AIX работает. Стрелка курсора только белая, но это из-за типа используемого терминала vt100, в отличие от Linux (красная, xterm).

@hulitolku
30.12.2024 22:19 UTC
0

А в pandas ничего похожего, как в tabulate, нет?