Python:如何在argparse帮助命令列表中添加“ -help”?

时间:2019-07-16 13:35:07

标签: python python-2.7 argparse

有没有一种方法可以在argparse帮助列表中包含“ -help”命令?

如果我输入'-help',我希望在输出中有类似的内容。

optional arguments:
-h, -help, --help            show this help message and exit

谢谢

2 个答案:

答案 0 :(得分:2)

虽然可以这样做,但不建议这样做。单破折号只能与单个字母一起使用。通常,您应该遵循其中的建议,这是有原因的。

但是,如果您确实要添加它,可以使用以下方法进行添加:

parser.add_argument("-help", action="help")

答案 1 :(得分:1)

@ Akaisteph7建议:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-help', action="help", help="second help :)")
parser.add_argument('-f', '--foo')

parser.print_help()

0945:~/mypy$ python3 stack57058526.py 
usage: stack57058526.py [-h] [-help] [-f FOO]

optional arguments:
  -h, --help         show this help message and exit
  -help              second help :)
  -f FOO, --foo FOO

更改为:

parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-h','--help','-help', action="help", help="replacement help")

0946:~/mypy$ python3 stack57058526.py 
usage: stack57058526.py [-h] [-f FOO]

optional arguments:
  -h, --help, -help  replacement help
  -f FOO, --foo FOO

在默认帮助中添加“ -help”标志需要修改几个“ private”属性:

parser = argparse.ArgumentParser()
parser._actions[0].option_strings += ['-help']                                                          
parser._option_string_actions['-help'] = parser._option_string_actions['-h']  

0947:~/mypy$ python3 stack57058526.py 
usage: stack57058526.py [-h] [-f FOO]

optional arguments:
  -h, --help, -help  show this help message and exit
  -f FOO, --foo FOO

如果要将此更改构建到本地argparse版本中,则可以使用ArgumentParser.__init__方法修改此代码块:

    if self.add_help:
        self.add_argument(
            default_prefix+'h', default_prefix*2+'help',
            action='help', default=SUPPRESS,
            help=_('show this help message and exit'))

是否更改argparse.py的本地副本或子类ArgumentParser取决于您。