Прекратить анализ первого неизвестного аргумента - PullRequest
2 голосов
/ 14 июля 2011

Используя argparse, возможно ли остановить синтаксический анализ аргументов первого неизвестного аргумента?

Я нашел 2 почти решения;

  1. parse_known_args, но это позволяет обнаруживать известные параметры после первого неизвестного аргумента.
  2. nargs=argparse.REMAINDER, но это не остановит синтаксический анализ до первого неопционального аргумента.Любые опции, предшествующие этому, которые не распознаются, вызывают ошибку.

Я что-то упустил?Должен ли я использовать argparse вообще?

1 Ответ

2 голосов
/ 14 июля 2011

Я не использовал argparse сам (нужно, чтобы мой код был совместим с 2.6), но, просматривая документы, я не думаю, что вы что-то пропустили.

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

Если у вас есть позиционные аргументы, которые должны начинаться с '-' и не выглядят как отрицательные числа, вы можете вставить псевдо-аргумент '--', который сообщает parse_args(), что все после этого является позиционным аргументом:

>>> parser.parse_args(['--', '-f'])
Namespace(foo='-f', one=None)
...