Argparse - 区分没有选项,调用的选项和用参数调用的选项?

时间:2016-11-16 23:22:02

标签: python argparse

举个例子:

#thing.py
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--show", nargs='?', action="store")
args = parser.parse_args()

如何区分以下用法:

python thing.py

python thing.py --show

python thing.py --show all

基本上,如果出现以下情况,我想做不同的事情:

  • 用户未指定选项
  • 用户自行指定“--show”选项
  • 用户使用字符串/参数指定“--show all”。

在add_argument中使用default="foo"不起作用,因为在测试时它始终存在 - 我无法知道用户是否实际指定了选项“--show”。

1 个答案:

答案 0 :(得分:5)

使用abcd cadb cadb cadb cabd cabd cabd cadb cabd cadb kwarg。如果未指定该选项,则将使用const。如果该选项单独提供,则将使用default。如果为该选项提供值,则将使用该值。

从文档中复制:

const