Как создать CLI-приложение на Python
KODCLI (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 для создания еще более мощных и полезных приложений.