是否可以判断用户是否使用docopt设置选项?

时间:2017-01-26 21:37:26

标签: python docopt

考虑以下简单程序。

from docopt import docopt

doc = """
Usage: ./opt.py [options]

    -h,--help         show this
    -a <option>       generic option [default: Foo]
"""

options = docopt(doc)
print options['-a']
print options

是否可以在我的程序中区分以下两个用户调用?

python Opt.py -a Foo
python Opt.py

1 个答案:

答案 0 :(得分:2)

如果定义默认值,则无法区分。但是您可以从docstring中删除默认值并以编程方式设置它。

from docopt import docopt

doc = """
Usage: ./opt.py [options]

    -h,--help         show this
    -a <option>       generic option
"""

options = docopt(doc)
if options['-a']:
    # option was defined
    ...
else:
    # option was not defined
    options['-a'] = "Foo"
    ...

但无论如何,对于哪些用例根本不需要?