Перейти к содержанию

Аргументы командной строки и создание CLI-инструментов

Начало урока

Аргументы командной строки и создание CLI-инструментов

Превратите скрипт в настоящий инструмент, читающий параметры из командной строки с помощью argparse

Главная идея: Инструмент командной строки — это обычный скрипт на Python, который читает слова, введённые пользователем после имени программы. Модуль стандартной библиотеки argparse берёт этот сырой список слов, сверяет его с объявленными вами аргументами, преобразует каждое значение к нужному типу, бесплатно формирует экран справки и возвращает аккуратный объект с настройками. Вы описываете, что принимает инструмент; argparse делает разбор, проверку и вывод ошибок за вас.
К концу вы сможете:
  • читать сырые аргументы из sys.argv и понимать, почему этого мало,
  • объявлять позиционные аргументы и необязательные флаги через add_argument,
  • задавать значения default, преобразовывать через type и ограничивать через choices,
  • добавлять переключатели вкл/выкл через action="store_true",
  • писать хороший текст help и читать автоматический экран использования,
  • разбивать большой инструмент на подкоманды, такие как add и list.

1. Сырьё: sys.argv

Когда вы запускаете python greet.py Alice --loud, Python передаёт вашей программе следующие за ней слова в виде списка строк sys.argv. Первый элемент — всегда имя скрипта; остальное — то, что ввёл пользователь.

import sys

# запуск:  python greet.py Alice --loud
print(sys.argv)
# ['greet.py', 'Alice', '--loud']

Можно разбирать этот список вручную, но вы быстро придёте к хрупкому коду: проверка длины, поиск --loud, преобразование "3" в int, вывод справки и понятные ошибки при опечатках. Каждому серьёзному инструменту нужна одна и та же обвязка, поэтому стандартная библиотека даёт её в виде argparse.

Обратите внимание: всё в sys.argv — это строки, даже "3". Преобразование и проверку этих строк как раз и берёт на себя argparse.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя