Argparse如何更改默认帮助(用法)部分



我有以下参数分析器配置,通过它我定义了'-config'参数:

# Initialize the Argument Parser
clArgsParser = argparse.ArgumentParser (
description = __program__.description,
epilog = __program__.epilog,
formatter_class = argparse.RawDescriptionHelpFormatter
)
# Define '--config' argument
clArgsParser.add_argument (
'-c', '--config',
help = "Path to the Program's Configuration file.",
type = str,
action = 'store',
dest = 'programConfigPath'              # Store the argument value into the variable 'programConfigPath'
)

一旦执行了带有此代码的程序,并且我在CL接口中键入--help,就会为"--config"参数打印出以下用法文本:

optional arguments:
-c PROGRAMCONFIGPATH, --config PROGRAMCONFIGPATH

但是,我不希望PROGRAMCONFIGPATH被打印出来,而是希望<PROGRAM_CONFIG_PATH>被打印出来。总结如下:

Now:        -c PROGRAMCONFIGPATH,     --config PROGRAMCONFIGPATH
Shall be:   -c <PROGRAM_CONFIG_PATH>, --config <PROGRAM_CONFIG_PATH>

如何在不更改存储CL Argument参数的变量名称的情况下做到这一点:dest = 'programConfigPath'

当ArgumentParser生成帮助消息时,它需要某种方式来引用每个期望的参数。可以使用metavar选项指定预期参数的替代名称,该选项将覆盖帮助消息中的默认预期参数。

例如,要将PROGRAMCONFIGPATH更改为<PROGRAM_CONFIG_PATH>,必须在ArgumentParser中添加以下选项

metavar='<PROGRAM_CONFIG_PATH>' 

此代码:

# Define '--config' argument
clArgsParser.add_argument (
'-c', '--config',
help = "Path to the Program's Configuration file in the JSON format (e.g. 'ProgramConfig.json').",
type = str,
action = 'store',
dest = 'programConfigPath',          # Store the argument value into the variable 'programConfigPath'
metavar='<PROGRAM_CONFIG_PATH>'      # Specify alternative name in the helper (usage) section
)

将产生以下输出:

options:
-c <PROGRAM_CONFIG_PATH>, --config <PROGRAM_CONFIG_PATH>

注意,metavar只更改显示的名称-parse_args()对象上的属性名称仍然由dest值决定,在我们的情况下为dest = 'programConfigPath'

相关内容

  • 没有找到相关文章

最新更新