我有一个调用其插件的特定配置文件。可以将参数传递给这些插件。此配置文件还允许我在运行时调用任意命令。
插件使用许多参数:其中一个是-h
,它不代表--help
。现在,我的问题是我想调用我自己的Python脚本以及传递一些参数。我正在使用argparse并希望与配置的其余部分保持一致,我创建了一个-h
标志。令我惊讶的是,argparse只给了我argparse.ArgumentError: argument -h/--help: conflicting option string(s): -h
而不是自己做生意。
有没有办法阻止这种情况发生?
我很清楚,大多数人都希望-h
能够提供帮助,但这是我自己的脚本,而且我认为我比argparse开发者更了解我想要使用的标志。
答案 0 :(得分:17)
在argparse documentation中查找ArgumentParser参数。有一个叫 add_help,默认为True。
parser = argparse.ArgumentParser('Cool', add_help=False)
parser.add_argument('-h', '--hi', action='store_true', dest='hi')
这可以按预期工作。
答案 1 :(得分:7)
有一个kwarg压制那些东西(docs) 像这样创建你的解析器:
parser = argparse.ArgumentParser(prog='PROG', add_help=False)