Русский
Открыть в Telegram

Пост ✈️Сегодня поговорим о том, как создавать крутые CLI-приложения с помощью Click. Если вам надоело писать бесконечные if'ы…

14 января 2026
P
Pythoner
Фотография
✈️Сегодня поговорим о том, как создавать крутые CLI-приложения с помощью Click. Если вам надоело писать бесконечные if'ы для обработки аргументов командной строки, то этот пост определенно для вас! ➡️Начнем с того, почему вообще стоит использовать Click, а не встроенный argparse: —Декораторный подход, который выглядит элегантно и интуитивно понятен —Автоматическая генерация справки и сообщений об ошибках —Вложенные команды из коробки —Поддержка автодополнения в shell ➡️Давайте посмотрим на простой, но реальный пример. Представим, что мы делаем утилиту для работы с файлами: import click @click.group() def cli(): """Утилита для работы с файлами""" pass @cli.command() @click.argument('path') @click.option('--lines', '-l', is_flag=True, help='Показать количество строк') def analyze(path, lines): """Анализирует файл и выводит статистику""" try: with open(path) as f: content = f.readlines() if lines: click.echo(f'Количество строк: {len(content)}') except FileNotFoundError: click.secho('Файл не найден! 😱', fg='red') if __name__ == '__main__': cli() Крутая штука в Click – это то, как легко добавлять новые команды. Хотите добавить подкоманду? Просто навешиваете еще один декоратор! ➡️А теперь лайфхак, который многие упускают: Click умеет создавать красивые прогресс-бары: @cli.command() @click.argument('path') def process(path): """Обрабатывает файлы с прогресс-баром""" files = os.listdir(path) with click.progressbar(files, label='Обработка файлов') as bar: for f in bar: # что-то делаем с файлом time.sleep(0.1) ➡️Про что еще стоит знать? Click отлично работает с цветным выводом. Хотите привлечь внимание пользователя? Используйте click.secho(): click.secho('Внимание! 🚨', fg='yellow', bold=True) click.secho('Ошибка! ❌', fg='red') click.secho('Успех! ✅', fg='green') ➡️И напоследок, трюк – создание интерактивных подтверждений: if click.confirm('Уверены, что хотите удалить все файлы? 🤔'): click.echo('Поехали! 🚀') 📂Документация 🐍 Pythoner
27 · 1.3K ·

Рядом в ленте

PPythoner✈️В Python деструкторы — это специальные методы, которые вызываются, когда объект собирается с мусором (т.е., когда он больше не нужен и память, занимаемая объеPPythoner✈️EasyOCR – это библиотека на Python, которая позволяет легко извлекать текст из изображений и PDF. Она поддерживает более 80 языков и идеально подходит для авт
это сообщение
PPythoner✈️Практическое руководство по реализации современных языковых моделей (включая GPT) на чистом Python и PyTorch. Идеально для изучения архитектуры LLM без испольPPythoner✈️Keyring – библиотека для работы с системным хранилищем учетных данных (Keychain, KWallet, Secret Service). Позволяет безопасно хранить и получать пароли, испо

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем