使用 Python argparse 创建隐藏参数

是否可以向 pythonargparse.ArgumentParser添加一个 Argument 而不在使用或帮助(script.py --help)中显示它?

37521 次浏览

是的,你可以将 help选项设置为 add_argument设置为 argparse.SUPPRESS:

>>> parser = argparse.ArgumentParser(prog='frobble')
>>> parser.add_argument('--foo', help=argparse.SUPPRESS)
>>> parser.print_help()
usage: frobble [-h]


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

我通过添加一个选项来启用隐藏的选项,并通过查看 sysv.args来获取这个选项。

如果您这样做,您必须将从 sys.argv中挑选的特殊参数直接包含在解析列表中,如果假设该选项为 -s以启用隐藏选项。

parser.add_argument('-a', '-axis',
dest="axis", action="store_true", default=False,
help="Rotate the earth")
if "-s" in sys.argv or "-secret" in sys.argv:
parser.add_argument('-s', '-secret',
dest="secret", action="store_true", default=False,
help="Enable secret options")
parser.add_argument('-d', '-drill',
dest="drill", action="store_true", default=False,
help="drill baby, drill")