Ознакомьтесь с модулем argparse (или optparse для более старых версий Python).
Обратите внимание, что argparse
/ optparse
являются более новой и лучшей заменой для getopt
, поэтому, если вы новичок в этом, они рекомендуются. Из документации getopt
:
Примечание. Модуль getopt - это синтаксический анализатор параметров командной строки, API которого разработан так, чтобы быть знакомым пользователям функции C getopt (). Пользователи, которые не знакомы с функцией C getopt () или которые хотели бы писать меньше кода и получать более качественную помощь и сообщения об ошибках, должны рассмотреть возможность использования вместо этого модуля argparse.
Python имеет встроенную обработку аргументов с модулем getopt
.
Он может обрабатывать длинные и короткие формы аргументов, а также «голые» и параметризованные версии ( - справка
по сравнению с - num = 7
).
Для ваших конкретных случаев использования (и немного больше) вы, вероятно, посмотрите на что-то вроде:
opts,args = getopt.getopt(argv,"b:vVh",["block=", "verbose", "very-verbose", "help"])
Я не уверен, что это так, если он позволяет использовать многосимвольные варианты с одним дефисом, такие как -vv
. Я бы сам использовал -v
и -V
, чтобы облегчить себе жизнь.
Лучшим вариантом, чем эта ссылка, являются модули OptParse или GetOpt, и в зависимости от того, какую версию Python вы используете, самые новые… 2.7 и 3.1.2, у вас есть еще более новый встроенный модуль. В документации на официальном справочнике python.org есть очень информативный набор документации и примеров для этих модулей. Если вы зайдете на python.org и просто выполните быстрый поиск OptParse или GetOpt, у вас будет все необходимое.
Возможно, есть лучший способ, но я бы просто использовал sys.argv и вставлял условия там, где это необходимо, т.е.
if '--v' or '--vv' in sys.argv :
print 'verbose message'
optfunc - интересный маленький модуль. Это здорово, если вы хотите быстро написать небольшой сценарий. Для больших вещей я бы пошел с argparse , как писали другие.