Независимо от того, создаете ли вы простой скрипт 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)

Комментарии (17)


  1. jorikdima
    06.01.2023 17:38
    +5

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


    1. Lord_of_Rings Автор
      06.01.2023 18:06

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


      1. saboteur_kiev
        07.01.2023 00:50

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


        1. Lord_of_Rings Автор
          07.01.2023 01:23

          Обновится


    1. Lissov
      07.01.2023 11:49
      -2

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


  1. shpaker
    06.01.2023 18:02
    +2

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


  1. dolfinus
    06.01.2023 18:24
    +6

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

    https://github.com/Textualize/rich


    1. Lord_of_Rings Автор
      06.01.2023 18:29

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


  1. mr-giz
    06.01.2023 18:26
    +10

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


    1. Ryav
      07.01.2023 21:46

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


  1. KorP
    06.01.2023 18:54
    +2

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


  1. vkflare
    06.01.2023 23:11
    +3

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


  1. invasy
    07.01.2023 11:47
    +3

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

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

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


  1. Choose_Goose
    07.01.2023 14:45

    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.

    )


    1. Lord_of_Rings Автор
      07.01.2023 14:46

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


      1. Choose_Goose
        07.01.2023 18:50

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


        1. Lord_of_Rings Автор
          07.01.2023 19:21

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