Я пытаюсь пропустить определенную группу параметров (только -p '). Я объявляю их в терминале следующим образом: python program.py -p paramOne paramTwo
. Мой вывод программы - только paramOne
, и я не понимаю, почему. Моя цель состоит в том, чтобы получить следующий результат:Как пропустить optparse.OptionGroup в Python
paramOne
paramTwo
Может ли кто-нибудь сказать мне, где ошибка в моем коде?
Вот код:
# Parcing definitions
parser = optparse.OptionParser()
groupParam = optparse.OptionGroup(parser, 'Output handling')
parser.add_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
help=('don\'t print status messages to stdout'))
groupParam.add_option('-p', '--parameters', action='store', dest='paramNum', type='string',
help=('specify number of parameters (Optional)'))
parser.add_option_group(groupParam)
(options, args) = parser.parse_args()
for groupParam1 in groupParam.option_list:
print getattr(options, groupParam1.dest)
P.S. Я запускаю Python 2.6.6
Спасибо за ответ. Это действительно работает, но (я не упоминал), мои аргументы будут динамическими (0 - около 20), так как же может быть «nargs» динамическим? – Newskooler
@Newskooler, вам нужно использовать ['argparse'] (https://docs.python.org/2/library/argparse.html) для использования динамических nargs ('? ',' * ',' + '), но, к сожалению, он доступен в Python 2.7+. См. Https://docs.python.org/2/library/argparse.html#nargs – falsetru