Как проанализировать параметры командной строки в Python? [дубликат]

12
задан Community 23 May 2017 в 12:25
поделиться

5 ответов

Ознакомьтесь с модулем argparse (или optparse для более старых версий Python).
Обратите внимание, что argparse / optparse являются более новой и лучшей заменой для getopt , поэтому, если вы новичок в этом, они рекомендуются. Из документации getopt :

Примечание. Модуль getopt - это синтаксический анализатор параметров командной строки, API которого разработан так, чтобы быть знакомым пользователям функции C getopt (). Пользователи, которые не знакомы с функцией C getopt () или которые хотели бы писать меньше кода и получать более качественную помощь и сообщения об ошибках, должны рассмотреть возможность использования вместо этого модуля argparse.

32
ответ дан 2 December 2019 в 04:33
поделиться

Python имеет встроенную обработку аргументов с модулем getopt .

Он может обрабатывать длинные и короткие формы аргументов, а также «голые» и параметризованные версии ( - справка по сравнению с - num = 7 ).

Для ваших конкретных случаев использования (и немного больше) вы, вероятно, посмотрите на что-то вроде:

opts,args = getopt.getopt(argv,"b:vVh",["block=", "verbose", "very-verbose", "help"])

Я не уверен, что это так, если он позволяет использовать многосимвольные варианты с одним дефисом, такие как -vv . Я бы сам использовал -v и -V , чтобы облегчить себе жизнь.

3
ответ дан 2 December 2019 в 04:33
поделиться

Лучшим вариантом, чем эта ссылка, являются модули OptParse или GetOpt, и в зависимости от того, какую версию Python вы используете, самые новые… 2.7 и 3.1.2, у вас есть еще более новый встроенный модуль. В документации на официальном справочнике python.org есть очень информативный набор документации и примеров для этих модулей. Если вы зайдете на python.org и просто выполните быстрый поиск OptParse или GetOpt, у вас будет все необходимое.

1
ответ дан 2 December 2019 в 04:33
поделиться

Возможно, есть лучший способ, но я бы просто использовал sys.argv и вставлял условия там, где это необходимо, т.е.

if '--v' or '--vv' in sys.argv :
    print 'verbose message'
-4
ответ дан 2 December 2019 в 04:33
поделиться

optfunc - интересный маленький модуль. Это здорово, если вы хотите быстро написать небольшой сценарий. Для больших вещей я бы пошел с argparse , как писали другие.

1
ответ дан 2 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: