我正在编写一个代码,我必须在其中传递主机名作为可选参数。它还需要使用 -h 选项传递。
用法:
./program.py -h hostname
默认情况下,Argparse 使用 -h 作为打印帮助。是否有可能以某种方式覆盖它?
没问题,您所要做的就是将add_help=False
传递给ArgumentParser
构造函数。
import argparse
parser = argparse.ArgumentParser(add_help=False)
但是,如果您仍然想拥有帮助功能,那就不那么容易了。在这种情况下,我建议只调用您的主机参数-H
或其他东西。如果你真的想这样做,这是一种方法,但它绝对是一个黑客:
import argparse
parser = argparse.ArgumentParser(add_help=False)
parser._add_action(argparse._HelpAction(
option_strings=['-H', '--help'],
help='Show this help message and exit'
))
编辑:感谢@chepner指出添加帮助功能的更简洁的方法:
parser.add_argument('-H', '--help', action='help',
help='show this help message and exit')