2012-06-23 2 views
3

мне нужно, чтобы получить что-то работать, как это:argparse дополнительную зависимость для дополнительного аргумента

./foo.py [-b option [-a]] 

с argparse. Я думал об использовании sub_parsers, но я не знаю, как заставить его работать.

+0

Насколько это возможно с логикой argparse, кажется, есть открытый билет для этого точная функциональность: http://bugs.python.org/issue11588 – jdi

ответ

2

Простой способ состоит в том, чтобы просто добавить правила в коды, которые получают ваши варианты, чтобы выдать ошибку, если -a есть, а не b (и документируйте ее в помощи пользователя). Вы также можете переопределить строку использования, используя ключевое слово usage: http://docs.python.org/dev/library/argparse.html#usage

sub_parsers приятные, но я не думаю, что они соответствуют вашим потребностям. Их usecase больше похож на множество функций в одном исполняемом файле (думаю, svn add, svn ci, svn co и т. Д.)

+0

Согласен. Хотя я уверен, что вы можете использовать более сложные функции argparse, это очень просто, как вы сказали, проверяя значения. – jdi

Смежные вопросы