有没有办法将"-help"命令包含在argparse帮助列表中?
如果我输入"-help",我希望在输出上有这样的东西。
optional arguments:
-h, -help, --help show this help message and exit
谢谢
正如@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"标志添加到默认帮助需要修改几个"私有"属性:
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
取决于您。
虽然可以这样做,但不建议这样做。单破折号只能与单个字母一起使用。一般来说,您应该遵循建议,因为它们的存在是有原因的。
但是,如果您真的想添加它,则可以使用以下方法:
parser.add_argument("-help", action="help")
argparse
可以使用任何前缀字符。例如,要支持 POSIX、Cmd.exe 和 PowerShell 类型的查询,您可以使用:
p = ArgumentParser(prefix_chars="-/", add_help=False)
p.add_argument("-help", "--help", "-h", "/?", action="help")
请记住使用add_help=False
否则您将有两个帮助命令!