argparse: Как перестать интерпретировать аргументы после того, как первый аргумент не начинается с '-'? - PullRequest
0 голосов
/ 07 июня 2018

Я пишу инструмент командной строки, который выполняет другие команды в песочнице.Основное использование моего инструмента:

my_tool 'echo "hello"'

, который выполняет echo "hello".Я хотел бы иметь возможность написать

my_tool echo "hello" 

вместо этого;однако это приводит к my_tool: error: unrecognized arguments: hello, потому что, кроме основного аргумента, мой инструмент принимает только логический параметр -n.

Я бы хотел, чтобы parse_args() понял, что echo "hello" является основным аргументом, даже если он не заключен в тики, потому что echo начинается без минуса и, таким образом, сигнализирует о начале основного аргумента.

Я пытался parse_known_args().Однако параметры инструмента «песочница» смешиваются с параметрами моего собственного инструмента, например:

my_tool echo -n "hello"

имеет тот же результат, что и

my_tool -n echo "hello"

, чего не должно быть.

1 Ответ

0 голосов
/ 07 июня 2018

Добавить аргумент внешнего инструмента через

add_argument('arg',nargs = argparse.REMAINDER)

https://docs.python.org/2/library/argparse.html#argparse-remainder

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...