P
Python для начинающих
@pythonvideo1.2K подп.
91просмотров
7.3%от подписчиков
26 марта 2026 г.
Score: 100
Python для начинающих: приручаем командную строку с argparse Рано или поздно любой скрипт вырастает из стадии «запустить и забыть» и ему хочется передавать параметры: путь к файлу, режим работы, уровень детализации логов. Жестко прописывать это в коде неудобно – каждый раз править и перезапускать. Тут и появляется герой дня — модуль argparse. ### Базовый пример: скрипт-калькулятор Сделаем простой калькулятор, который принимает числа и операцию из командной строки: import argparse def main(): parser = argparse.ArgumentParser( description="Simple CLI calculator" ) parser.add_argument("x", type=float, help="First number") parser.add_argument("y", type=float, help="Second number") parser.add_argument( "--op", "-o", choices=["add", "sub", "mul", "div"], default="add", help="Operation to perform" ) args = parser.parse_args() if args.op == "add": result = args.x + args.y elif args.op == "sub": result = args.x - args.y elif args.op == "mul": result = args.x * args.y elif args.op == "div": result = args.x / args.y print(result) if name == "main": main() Теперь можно запускать так: python calc.py 10 5 --op mul # 50.0 Позиционные аргументы (x, y) обязательны, опция --op имеет значение по умолчанию и подсказку. ### Флаги и логические переключатели Частая задача — включить «болтливый» режим: import argparse parser = argparse.ArgumentParser(description="Demo for flags") parser.add_argument("--verbose", "-v", action="store_true", help="Enable verbose mode") args = parser.parse_args() if args.verbose: print("Verbose mode is ON") Флаг без значения, просто включается при наличии в командной строке. ### Значения по умолчанию и типы argparse сам преобразует типы и выдаст внятную ошибку, если пользователь введет ерунду: parser.add_argument( "--limit", type=int, default=10, help="Max number of items (default: 10)" ) Попробуйте передать строку вместо числа — будет аккуратное сообщение с подсказкой по использованию. ### Подкоманды: один скрипт — много режимов Когда скрипт начинает «разрастаться», удобно завести подкоманды, как у git (git add, git commit): import argparse parser = argparse.ArgumentParser(description="User manager") subparsers = parser.add_subparsers(dest="command", required=True) add_parser = subparsers.add_parser("add", help="Add new user") add_parser.add_argument("name") add_parser.add_argument("--admin", action="store_true") list_parser = subparsers.add_parser("list", help="List users") args = parser.parse_args() if args.command == "add": print(f"Adding user {args.name}, admin={args.admin}") elif args.command == "list": print("Listing users...") Запуск: python usertool.py add Alice --admin python usertool.py list argparse берет на себя всю грязную работу по разбору аргументов, проверке типов и красивой справке. А вы концентрируетесь на логике программы, а не на парсинге строк.
91
просмотров
3042
символов
Нет
эмодзи
Нет
медиа

Другие посты @pythonvideo

Все посты канала →
Python для начинающих: приручаем командную строку с argparse — @pythonvideo | PostSniper