覆盖默认的argparse -h行为

时间:2013-02-19 06:09:26

标签: python argparse

我有一个调用其插件的特定配置文件。可以将参数传递给这些插件。此配置文件还允许我在运行时调用任意命令。

插件使用许多参数:其中一个是-h,它不代表--help。现在,我的问题是我想调用我自己的Python脚本以及传递一些参数。我正在使用argparse并希望与配置的其余部分保持一致,我创建了一个-h标志。令我惊讶的是,argparse只给了我argparse.ArgumentError: argument -h/--help: conflicting option string(s): -h而不是自己做生意。

有没有办法阻止这种情况发生?

我很清楚,大多数人都希望-h能够提供帮助,但这是我自己的脚本,而且我认为我比argparse开发者更了解我想要使用的标志。

2 个答案:

答案 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)