Docopt - 需要一个或多个选项

时间:2013-03-21 08:44:47

标签: docopt

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

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

但不是没有争论:

command.py

谢谢!

1 个答案:

答案 0 :(得分: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]

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