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