Argparse неправильный порядок позиционных и дополнительных параметров

Почему argparse не анализирует эти аргументы?

--foo 1 2 3 bar

Использование

parser = argparse.ArgumentParser()
parser.add_argument('--foo', nargs='+')                  
parser.add_argument('bar')

, которое дает следующая ошибка:

ошибка: слишком мало аргументов

Если я сначала передаю аргумент bar, он работает:

bar --foo 1 2 3   

Это само по себе не так уж плохо. Я могу жить, имея сначала позиционные аргументы, просто это поведение несовместимо с помощью, которую создает для нас argparse, в котором говорится, что панель должна быть последней:

использование: argparsetest.py [-h] [--foo FOO [FOO ...]] bar

Так как же добиться того, чтобы это работало с последовательным текстом справки?

Вот полная тестовая программа .

7
задан JasonMArcher 11 November 2014 в 21:24
поделиться