首页 文章

Docopt - 需要一个或多个选项

提问于
浏览
0

我有三个参数:--a --b --c,我希望我的命令至少接受它们,但是a / b / c的所有组合也是有效的 . 例如:

command.py --a
command.py --a --b
command.py --a --b --c
...

但不是没有参数:

command.py

谢谢!

1 回答

  • 1

    我希望我的命令至少接受他们

    您可以执行以下操作:

    >>> from docopt import docopt
    >>> u = '''usage: command.py --a [--b --c]
    ...               command.py --b [--a --c]
    ...               command.py --c [--a --b]'''
    >>> docopt(u, ['--a'])
    {'--a': True,
     '--b': False,
     '--c': False}
    >>> docopt(u, ['--b'])
    {'--a': False,
     '--b': True,
     '--c': False}
    >>> docopt(u, ['--c'])
    {'--a': False,
     '--b': False,
     '--c': True}
    >>> docopt(u, [])
    usage: command.py --a [--b --c]
           command.py --b [--a --c]
           command.py --c [--a --b]
    

    虽然这可能不是用户友好的命令行界面 . 也许,你可以更详细地解释你的界面,我可以告诉你如何实现它(可能不仅有选项,还有命令和位置参数) .

相关问题