Основы 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 — локальная установка не требуется.