Сообщить об ошибке.

Функция getopt() модуля getopt в Python

Порядок разбора параметров командной строки модулем getopt

Синтаксис:

import getopt

optlist, args = getopt.getopt(args, shortopts, longopts=[])

Параметры:

  • args - список аргументов,
  • shortopts - строка букв с опциями, которые передаются в скрипт
  • longopts=[] - имена длинных опций.

Возвращаемое значение:

Описание:

Функция getopt() модуля getopt анализирует параметры командной строки и список параметров.

Аргумент args - это список аргументов для анализа без начальной ссылки на запущенную программу. Обычно это sys.argv[1:].

Аргумент shorttopts - это строка букв опций, которую необходимо распознать скрипту/программе. Если для опции требуются указать аргумент (значение), то за этой опцией необходимо ставить двоеточие ':', т. е. тот же формат, что и в функции Unix getopt().

Примечание. В отличие от GNU getopt(), после аргумента, не являющегося параметром, все последующие аргументы также НЕ считаются параметрами. Это похоже на то, как работают системы Unix.

Аргумент longopts, если он указан, то должен быть списком строк с именами длинных опций, которые должны поддерживаться. Начальные символы '--' не должны быть включены в название параметра.

Длинные параметры, требующие аргумента, должны сопровождаться знаком равенства '='. Необязательные аргументы - не поддерживаются. Чтобы принимать только длинные варианты, shortopts шортопты должны быть пустой строкой. Длинные параметры в командной строке можно распознать, если они предоставляют префикс имени параметра, который точно соответствует одному из принятых параметров. Например, если longopts=['foo', 'frob'], опция --fo будет соответствовать как --foo, но --f не будет соответствовать однозначно, поэтому будет вызвано исключение GetoptError.

Возвращаемое значение функция getopt.getopt() состоит из двух элементов, это:

  1. список пар (option, value);
  2. список аргументов программы, т.е. то, что остается после удаления списка опций - это конечный фрагмент args.

Каждая возвращенная пара (option, value) содержит

  • option - параметр с префиксом дефиса для коротких параметров (например, '-x') или двумя дефисами для длинных параметров (например, '--long-option');
  • value - значение опции или пустую строку, если у опции нет значения.

Параметры появляются в списке в том же порядке, в котором они были переданы в командную строку, что позволяет использовать несколько вариантов. Длинные и короткие варианты могут быть смешаны.

Примеры использования getopt.getopt():

Пример использования параметров в стиле Unix:

>>> import getopt
>>> args = '-a -b -cfoo -d bar a1 a2'.split()
>>> args
# ['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']
>>> optlist, args = getopt.getopt(args, 'abc:d:')
>>> optlist
# [('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
>>> args
# ['a1', 'a2']

Использование длинных имен опций:

>>> import getopt
>>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'
>>> args = s.split()
>>> args
# ['--condition=foo', '--testing', '--output-file', 
# 'abc.def', '-x', 'a1', 'a2']
>>> optlist, args = getopt.getopt(args, 'x', [
    'condition=', 'output-file=', 'testing'])
>>> optlist
# [('--condition', 'foo'), ('--testing', ''), 
# ('--output-file', 'abc.def'), ('-x', '')]
>>> args
# ['a1', 'a2']