我有一个Python脚本,我想强制所有必需的参数被命名(非位置)。
所以以下内容应该有效:
python myscript --arg1 arg1 --arg2 arg2
python myscript --arg2 arg2 --arg1 arg1
但以下情况应该失败:
python myscript arg1 arg2
python myscript --madeUpArg arg1 --arg2 arg2
从我所知道的,在argparse中,如果你需要一些东西,它就会变成一个位置参数,所以我想要失败的第二个例子都会成功(即使是第二种情况,还有一个构成的参数!)。我如何获得所需的功能?
答案 0 :(得分:4)
只要您未明确致电parse_known_args
,就不会接受您未定义的参数。
要创建所需的其他可选参数,请在定义时使用required
关键字参数。
p = argparse.ArgumentParser()
p.add_argument("--arg1", required=True)
p.add_argument("--arg2", required=True)