0Pricing
Python Academy · Урок

Основы argparse

Разбирайте аргументы командной строки

«Основы argparse» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Зачем нужен argparse?

Модуль argparse (из стандартной библиотеки) создаёт удобные интерфейсы командной строки. Он разбирает аргументы, проверяет типы и автоматически формирует текст справки.

import argparse

parser = argparse.ArgumentParser(description='A demo tool')
print(type(parser).__name__)

Создание анализатора

Начните с создания ArgumentParser. Параметр description отображается в автоматически созданной справке.

import argparse

parser = argparse.ArgumentParser(description='Greet a user')
print('parser ready')

Позиционные аргументы

add_argument('name') определяет обязательный позиционный аргумент. Здесь мы передаём список в parse_args, чтобы код работал без настоящей командной строки.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('name')
args = parser.parse_args(['Alice'])
print('Hello,', args.name)

Необязательные аргументы

Имена, начинающиеся с --, обозначают необязательные флаги. Укажите default на случай, если пользователь их не передаст.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--greeting', default='Hi')
args = parser.parse_args(['--greeting', 'Hey'])
print(args.greeting)
print(parser.parse_args([]).greeting)

Аргументы с типами

Используйте type=int (или другой тип), чтобы argparse преобразовал и проверил значение. Некорректные входные данные вызовут понятную ошибку.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--count', type=int, default=1)
args = parser.parse_args(['--count', '5'])
print(args.count * 2)

Логические флаги

action='store_true' создаёт флаг, который по умолчанию имеет значение False, а при наличии — True; это идеально подходит для переключателей вроде --verbose.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true')
print(parser.parse_args(['--verbose']).verbose)
print(parser.parse_args([]).verbose)

Короткие и длинные имена

Задайте для аргумента короткую и длинную формы, например -n и --name. Обе формы устанавливают один и тот же атрибут.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-n', '--name', default='world')
print(parser.parse_args(['-n', 'Sam']).name)

Допустимые варианты

Ограничьте допустимые значения с помощью choices. argparse отклонит любое значение, которого нет в списке.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--mode', choices=['fast', 'slow'], default='fast')
print(parser.parse_args(['--mode', 'slow']).mode)

Несколько значений с nargs

nargs='+' собирает одно или несколько значений в список — это удобно, когда нужно принять несколько входных данных одновременно.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='+')
args = parser.parse_args(['a.txt', 'b.txt', 'c.txt'])
print(args.files)

Обязательные параметры и справка

Добавьте required=True, чтобы сделать необязательный флаг обязательным, а с помощью help= опишите его на созданном экране сведений об использовании.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--id', required=True, type=int, help='record id')
args = parser.parse_args(['--id', '7'])
print('id is', args.id)

Полноценный небольшой инструмент

Если объединить всё вместе, позиционный входной параметр, параметр с типом и флаг образуют небольшой, но настоящий CLI.

import argparse

parser = argparse.ArgumentParser(description='Repeat a message')
parser.add_argument('message')
parser.add_argument('--times', type=int, default=1)
parser.add_argument('--shout', action='store_true')
args = parser.parse_args(['hello', '--times', '2', '--shout'])
text = args.message.upper() if args.shout else args.message
for _ in range(args.times):
    print(text)

Быстрая проверка

Проверьте своё понимание argparse.

Итоги

Вы изучили основы argparse:

  • ArgumentParser с позиционными и --optional аргументами.
  • type, default, choices и required проверяют входные данные.
  • action='store_true' используется для флагов, а nargs — для списков.
  • Текст справки создаётся автоматически.

Далее: подкоманды и более гибкая работа с параметрами.

Часто задаваемые вопросы

Урок «Основы argparse» бесплатный?

Да — полный текст урока «Основы argparse» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Основы argparse»?

Разбирайте аргументы командной строки Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Основы argparse»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы argparse
  2. Подкоманды и параметры
  3. Библиотека Click
  4. Расширенный вывод в терминале
← Назад к Python Academy