在argparse中,除了'help'之外,是否可以使用-h选项?

时间:2017-11-19 20:17:22

标签: python parameter-passing

我正在编写一个代码,我必须将主机名作为可选参数传递。它还需要使用-h选项传递。

用法:

./program.py -h hostname

默认情况下,Argparse使用-h来打印帮助。有可能以某种方式覆盖它吗?

1 个答案:

答案 0 :(得分:2)

没问题,您所要做的就是将add_help=False传递给ArgumentParser构造函数。

import argparse
parser = argparse.ArgumentParser(add_help=False)

但是,如果你仍然希望获得帮助功能,那就不那么容易了。在这种情况下,我建议您只调用主持人参数-H或其他内容。如果你真的想这样做,这是一种方法,但它绝对是一种黑客攻击:

import argparse
parser = argparse.ArgumentParser(add_help=False)
parser._add_action(argparse._HelpAction(
    option_strings=['-H', '--help'],
    help='Show this help message and exit'
))

编辑:感谢@chepner指出了一种更简洁的添加帮助功能的方法:

parser.add_argument('-H', '--help', action='help',
    help='show this help message and exit')