python3 argparse 总是使用 -h 和 --help 作为帮助参数。现在我想使用 -h 和 --host 作为主机名参数。如何停止 argparse 以使用 -h 寻求帮助?
我知道在创建 ArgumentParse 实例时可以使用 add_help=False。但后来我开始处理我自己的 print_help 。像这样:
import os
import argparse
from inc import epilog
def ParseCommandLine():
parser = argparse.ArgumentParser(
description = "Network client program",
epilog = epilog,
add_help = False,
)
parser.add_argument(
"--help",
dest="help",
action="store_true",
help="show this help message and exit",
)
parser.add_argument(
"-h", "--host",
dest="host",
action="store",
help="target host",
)
parser.add_argument(
"-p", "--port",
dest="port",
action="store",
type=int,
help="target port",
)
return parser, parser.parse_args()
def Main():
parser, opt = ParseCommandLine()
if opt.help:
parser.print_help()
os.sys.exit(0)
有用。但现在我想为主机和端口参数添加 required=True 。然后就破了。因为当您执行 python xxxx.py --help 时,argparse 看到您缺少所需的参数主机和端口,它只会向您抱怨,并且不显示帮助屏幕。
任何人都知道如何更改 argparse 帮助参数的默认 registry_name 吗?