如何在argparse中要求参数并使它们成为非位置参数?

时间:2017-10-23 23:12:28

标签: python argparse

我有一个Python脚本,我想强制所有必需的参数被命名(非位置)。

所以以下内容应该有效:

python myscript --arg1 arg1 --arg2 arg2 python myscript --arg2 arg2 --arg1 arg1

但以下情况应该失败:

python myscript arg1 arg2 python myscript --madeUpArg arg1 --arg2 arg2

从我所知道的,在argparse中,如果你需要一些东西,它就会变成一个位置参数,所以我想要失败的第二个例子都会成功(即使是第二种情况,还有一个构成的参数!)。我如何获得所需的功能?

1 个答案:

答案 0 :(得分:4)

只要您未明确致电parse_known_args,就不会接受您未定义的参数。

要创建所需的其他可选参数,请在定义时使用required关键字参数。

p = argparse.ArgumentParser()
p.add_argument("--arg1", required=True)
p.add_argument("--arg2", required=True)