Python argparse 辅助部分

Python argparse helper section

刚开始使用 argparse 解析命令。

我有一个命令参数 -l。此参数从用户那里获取 2 个参数。

-l ONE_ARG TWO_ARG

在使用 argparse 的帮助文件中,我得到以下内容:

-l L L      Some message for this argument

我如何替换 'L' 来提供用户需要像这样放入这些参数中的内容的小庙宇。

-l "First_Name" "Last_Name"        Some message for this argument

基本上比 'L L' 更具描述性,这对用户来说没有任何意义。

最好的选择是使用元变量,https://docs.python.org/2/library/argparse.html#metavar 这给出了

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-l', nargs=2, 
       help = "Some message for this argument", 
                    metavar=('"First Name"', '"Second Name"'))
args = vars(parser.parse_args())

一个更灵活但不太优雅的答案可能是手动指定您想要的确切帮助:

import argparse

def print_names():
    outstr = "usage: scriptname -l 'First Name' 'Second Name' "
    outstr += "Some message for this argument "
    print(outstr)

 parser = argparse.ArgumentParser()
 parser.add_argument('-l', help=print_names(), nargs=2)
 args = vars(parser.parse_args())