有没有一种方法可以在argparse帮助列表中包含“ -help”命令?
如果我输入'-help',我希望在输出中有类似的内容。
optional arguments:
-h, -help, --help show this help message and exit
谢谢
答案 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
取决于您。