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

Python Getopt.

Python Getopt, Arguments командной строки Python Arguments, Python Getopt Пример, Python Getopt Несколько аргументов, Getopt vs argparse, gnu_getopt, ошибка опции getopt

Автор оригинала: Pankaj Kumar.

Аргументы командной строки PARSING – это очень распространенная задача, модуль Python Getopt является одним из вариантов разбора аргументов командной строки Python.

Python Getopt.

  • Модуль Python Getopt очень похож на работу в зависимости от C getopt () Функция для анализа параметров командной строки.
  • Поскольку эта функция аналогична функции C функции C и функции Unix GetOpt (), пользователи, знакомые с этими конвенциями, найдут очень легко в использовании функции модуля Python GetOPT.

Если вы хотите более простой модуль для анализа параметров командной строки, попробуйте argparse.

Python Getopt Функция

Гестоп это первая функция, предоставленная модуль с тем же именем.

Он анализирует параметры командной строки и список параметров. Подпись этой функции упоминается ниже:

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

Его аргументы включают в себя:

  • args аргументы будут переданы.
  • Шоплит Есть ли параметры этот скрипт.
  • Дополнительный параметр, ЛОЛДОТЫ Является ли список строковых параметров этой функции, которая должна поддерживаться. Обратите внимание, что - не следует добавлять с именами опционов.

Давайте изучим эту функцию, используя некоторые примеры.

Python Getopt пример

Теперь это будет сложно на первый взгляд. Мы увидим простой пример, который будет сложно, но мы объясним вещи потом.

Вот кодовый фрагмент:

import getopt
import sys

argv = sys.argv[1:]
try:
    opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file='])
    print(opts)
    print(args)
except getopt.GetoptError:
    #Print a message or do something useful
    print('Something went wrong!')
    sys.exit(2)

В этом примере мы просто приняли некоторые аргументы. Перед запуском скрипта давайте установим наше понимание того, что произошло здесь:

  • В sys.argv [1:] Мы используем стартовый индекс как 1, как sys.argv [0] Название сценария, которое мы работаем, который нам не нужно доступа к нашему сценарию.
  • Теперь функция Getopt принимает три параметра: Список аргументов командной строки, который мы получаем от sys.argv [1:] , строка, содержащая все принятые односимвые параметры командной строки, которые принимают скрипт, и список более длинных вариантов командной строки, которые эквивалентны одноразовые версии.
  • Если что-то не так бывает с Гестоп Позвоните, мы также можем поймать исключение и решать это изящно. Здесь мы только что вышли из исполнения сценария.
  • Как и в любых других командах в любой операционной системе, разумно распечатать детали, когда пользователь выполняет неправильно сценарий.

Итак, что делает HM: D средства? Глянь сюда:

-h
  print help and usage message
-m:
  accept custom option value
-d
  run the script in debug mode

Первые и последние варианты по умолчанию. Мы используем пользовательский вариант как М: обратите внимание на толстую кишку? Клона означает, что этот вариант может получить любой тип значения. Наконец, односигнальные версии являются одинаковыми версиями, H так же, как Помогите Отказ Вы можете упомянуть любой.

Давайте запустим сценарий сейчас:

Итак, это собрало варианты и аргументы в отдельных списках. Лучшая часть о Гестоп Это позволяет нам изящно управлять любыми возможными исключениями:

О my_file = Флаг, есть важный момент к примечанию. my_file = Флаг всегда должен быть снабжен дополнительным аргументом, точно так же, как флаг. Это описано равным знаком в my_file = Отказ

Python gnu_output () для анализа стиля GNU

В Python 2.3 была добавлена другая функция Гестоп Модуль называется gnu_output () Отказ Эта функция очень похожа на оригинал getopt () Функция, за исключением того, что по умолчанию используется сканирование стиля GNU. Давайте посмотрим пример сценария о том, как использовать эту функцию:

import getopt
import sys

variant = '1.0'
debug = False
output_file = 'my_file.out'

print('ARGV      :', sys.argv[1:])

options, remainder = getopt.gnu_getopt(
    sys.argv[1:], 'o:v', ['output=', 'debug', 'variant=',])
print('OPTIONS   :', options)

for opt, arg in options:
    if opt in ('-o', '--output'):
        print('Setting --output.')
        output_file = arg
    elif opt in ('-d', '--debug'):
        print('Setting --debug.')
        debug = True
    elif opt == '--variant':
        print('Setting --variant.')
        variant = arg

print('VARIANT   :', variant)
print('DEBUG   :', debug)
print('OUTPUT    :', output_file)
print('REMAINING :', remainder)

Прежде чем установить понимание, давайте запустим этот скрипт:

Мы даже можем попытаться запустить этот сценарий без аргументов:

Это описывает значения по умолчанию, которые присваиваются значениям, когда аргументы не передаются.

Не забудьте попробовать модуль argparse, если вы хотите больше гибкости.

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

Ссылка: API док