首页 > 解决方案 > 使用选项解析多个值

问题描述

我在 Python 脚本中使用 argparse 进行参数解析。在这种情况下,我有两个值来自使用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

我需要区分--addlikeNAME和的参数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

标签: python-3.xargparse

解决方案


要添加多个标签,请将 metavar 设置为每个参数都有一个值的元组。

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

推荐阅读