Рубрики
Без рубрики

Введение в Аргпарсе

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Вы когда-нибудь задумывались, как обработать аргументы командной строки в Python? Да, для этого есть модуль. Это называется argparse , что является заменой для optparse Отказ В этой статье мы будем принимать вихрь экскурсию на этот полезный модуль. Давайте начнем с чего-то простого!

Начиная

Я всегда нашел самый простой способ объяснить концепцию кодирования – показать какой-то код. Так вот что мы собираемся сделать. Вот супер простой пример, который не делает ничего из чего угодно:

>>> import argparse
>>> parser = argparse.ArgumentParser(
...         description="A simple argument parser",
...         epilog="This is where you might put example usage"
...     )
... 
>>> parser.print_help()
usage: _sandbox.py [-h]

A simple argument parser

optional arguments:
  -h, --help  show this help message and exit

This is where you might put example usage

Здесь мы просто импортируем argparse и дать ему описание и настроить раздел использования. Идея вот что, когда вы задаете программу, вы создаете для помощи, она скажет вам, как его использовать. В этом случае он распечатывает простое описание, в этом случае по умолчанию по умолчанию («-H» в этом случае) и пример использования.

Теперь давайте сделаем этот пример немного более конкретным. Вы обычно не будете обширными аргументами из командной строки в конце концов. Поэтому мы переместим код в функцию Python внутри файла Python:

# arg_demo.py

import argparse

#----------------------------------------------------------------------
def get_args():
    """"""
    parser = argparse.ArgumentParser(
        description="A simple argument parser",
        epilog="This is where you might put example usage"
    )
    return parser.parse_args()

if __name__ == '__main__':
    get_args()

Теперь давайте назовем скрипт из командной строки:

python arg_demo.py -h

Это распечатает текст справки, как мы видели ранее. Теперь давайте узнаем о том, как добавить некоторые из наших собственных пользовательских аргументов.

Добавление аргументов

Давайте напишем какой-нибудь код, который добавляет три новых аргумента, которые могут понять наш парсер. Мы добавим аргумент, который требуется и два, которые нет. Мы также посмотрим на добавление по умолчанию и требуемый тип. Вот код:

Теперь давайте запустим его несколько раз, так что вы можете увидеть, что произойдет:

Как вы можете видеть, если вы запустите код, не передавая его аргументы, вы получите ошибку. Далее мы передаем это просто необходимый аргумент, чтобы вы могли посмотреть, какие значения по умолчанию для двух других. Затем мы пробуемся проходить «текст» на аргумент «-Y», и которые хранятся, поэтому мы знаем, что это не требует логика. Последние два примера показывают, что происходит, когда вы передаете недействительное и допустимое значение для аргумента «-Z».

Кстати, имена аргументов не должны быть длиной одного символа. Вы можете изменить эти нечто более описательное, как «ARG1» или «симулятор» или все, что вы хотите.

Упаковка

Теперь вы знаете, как создать основы анализатора аргумента. Есть много других аспектов этого модуля, который вы можете заинтересовать, например, определение альтернативного имени назначения для аргумента для сохранения, используя разные префиксы (т. Е. + »вместо« – ‘), создавая группы аргументов и более Отказ Я рекомендую проверить документацию (связанное ниже) для более подробной информации.

Дополнительное чтение