Независимо от того, создаете ли вы простой скрипт 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, думаю рассказывать не надо, достаточно посмотреть на это
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)
shpaker
06.01.2023 18:02+2Подборка не плоха, но как мне - не блещет ничем новым, и от неё немного потягивает рандомным выбором.
dolfinus
06.01.2023 18:24+6Как можно было не упомянуть Rich?
Lord_of_Rings Автор
06.01.2023 18:29Все библиотеки упомянуть невозможно, я выбрал самые лучшие (на мой взгляд)
mr-giz
06.01.2023 18:26+10Для прогресс баров есть замечательная alive-progress. Для форматированного текста, таблиц, маркдауна и подобного rich. И да подборка очень куцая - мало и без примеров.
vkflare
06.01.2023 23:11+3Tabulate прекрасен тем, что умеет съедать dataframe. А уже упомянутый выше rich прекрасен во всех смыслах.
invasy
07.01.2023 11:47+3Про art, думаю рассказывать не надо
Лучше бы рассказать.
У статьи есть плашка «Обзор», но обзора не получилось. Документацию полезнее почитать.
Choose_Goose
07.01.2023 14:45simple-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 14:46На данный момент simple-term-menu работает только на Linux и MacOS
jorikdima
Подборка интересная, но уж слишком бегло. Чуть поболее бы примеров с иллюстрациями результатов.
Lord_of_Rings Автор
Учту. Заходите завтра, послезавтра ;-)
saboteur_kiev
будет еще статья или эта обновится?
Lord_of_Rings Автор
Обновится
Lissov
Попробуйте ChatGPT. Он может выдать интересные примеры, главное понимать, что спрашиваешь.