Как создать CLI-приложение на Python

Как создать CLI-приложение на Python

KOD

CLI (Command Line Interface) — это интерфейс, позволяющий пользователю взаимодействовать с программой с помощью текстовых команд. В этой статье мы рассмотрим, как создать простое CLI-приложение на Python.

1. Создание базового CLI-приложения

Сначала создадим простой скрипт на Python, который будет принимать аргументы из командной строки и выводить их на экран. Для этого нам понадобится модуль argparse.

import argparse

 

parser = argparse.ArgumentParser(description="Простое CLI-приложение на Python")

parser.add_argument("input", help="Введите текст, который вы хотите вывести на экран")

args = parser.parse_args()

 

print(args.input)


Сохраните этот код в файле cli_app.py. Теперь вы можете запустить приложение из командной строки, передав аргумент:

python cli_app.py "Hello, world!"

2. Добавление подкоманд

Чтобы сделать наше приложение более функциональным, добавим подкоманды. Например, добавим команду greet, которая будет выводить приветствие, и команду reverse, которая будет выводить текст в обратном порядке.

import argparse

 

parser = argparse.ArgumentParser(description="CLI-приложение на Python с подкомандами")

subparsers = parser.add_subparsers()

 

# Команда greet

parser_greet = subparsers.add_parser("greet", help="Выводит приветствие")

parser_greet.add_argument("name", help="Введите ваше имя")

parser_greet.set_defaults(func=lambda args: print(f"Hello, {args.name}!"))

 

# Команда reverse

parser_reverse = subparsers.add_parser("reverse", help="Выводит текст в обратном порядке")

parser_reverse.add_argument("text", help="Введите текст для переворота")

parser_reverse.set_defaults(func=lambda args: print(args.text[::-1]))

 

# Обработка аргументов

args = parser.parse_args()

args.func(args)


Теперь наше приложение поддерживает две подкоманды: greet и reverse. Вы можете использовать их следующим образом:

python cli_app.py greet "Alice"
python cli_app.py reverse "Hello, world!"

3. Обработка ошибок и вывод справки

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

import argparse

import sys

 

def main(args):

    parser = argparse.ArgumentParser(description="CLI-приложение на Python с подкомандами")

    subparsers = parser.add_subparsers()

 

    # Команда greet

    parser_greet = subparsers.add_parser("greet", help="Выводит приветствие")

    parser_greet.add_argument("name", help="Введите ваше имя")

    parser_greet.set_defaults(func=lambda args: print(f"Hello, {args.name}!"))

 

    # Команда reverse

    parser_reverse = subparsers.add_parser("reverse", help="Выводит текст в обратном порядке")

    parser_reverse.add_argument("text", help="Введите текст для переворота")

    parser_reverse.set_defaults(func=lambda args: print(args.text[::-1]))

 

    # Обработка аргументов

    if len(args) == 0:

        parser.print_help()

        sys.exit(1)

 

    args = parser.parse_args(args)

    args.func(args)

 

if __name__ == "__main__":

    main(sys.argv[1:])


Теперь, если пользователь не введет ни одной команды, приложение выведет справку по доступным командам.

Поздравляю! Вы только что создали свое первое CLI-приложение на Python! 🎉 Не останавливайтесь на достигнутом и продолжайте изучать возможности Python для создания еще более мощных и полезных приложений.

Report Page