Argparse несколько значений с параметрами - PullRequest
0 голосов
/ 02 августа 2020

Я использую argparse для разбора аргументов в сценарии Python. В этом случае у меня есть два значения, которые я получил от использования narg=2. Но проблема при печати справки. Ниже приведена часть сценария.

#!/usr/bin/python3

import argparse

parser = argparse.ArgumentParser(description='My App')
parser.add_argument('--add',default=None, action='store',help='Add new value', nargs=2,metavar='name')

args = parser.parse_args()

Вывод для приведенного выше кода:

$ python3 sshconfig.py list --help usage: sshconfig.py [-h] [--add NAME NAME]

My App

optional arguments:   -h, --help       show this help message and exit
--add NAME NAME  Add new value

Мне нужно различать аргумент --add, например NAME и VALUE, как показано ниже.

$ python3 sshconfig.py list --help usage: sshconfig.py [-h] [--add NAME VALUE]

My App

optional arguments:   -h, --help       show this help message and exit
--add NAME VALUE  Add new value

1 Ответ

0 голосов
/ 26 августа 2020

Чтобы добавить несколько меток, установите для метавары кортеж , который имеет значение для каждого аргумента.

parser = argparse.ArgumentParser(description='My App')
parser.add_argument('--add', help='Add new value', nargs=2, metavar=('name', 'VALUE'))

args = parser.parse_args()

вывод:

usage: test.py [-h] [--add name VALUE]

My App

optional arguments:
  -h, --help        show this help message and exit
  --add name VALUE  Add new value
...