我想使用 docopt
来解析可以多次接收 the same 选项的命令行 . 有人可以解释一下怎么做吗?
一个测试例子:
#!/usr/bin/env python
"""
Test program.
Usage:
test.py -v
Options:
-v Flag that should be counted
"""
import docopt
print docopt.docopt(__doc__)
如果我用 test.py -v
运行,我得到:
{'-v': True}
如果我用 test.py -vv
运行它,它会显示用法消息(表示命令行无效) .
我想调整选项文档,以便 docopt
返回给我:
{'-v': 1}
当只有1 -v
被传递时:
{'-v': 3}
例如,如果用户传递了 -vvv
. 这几乎是相同的功能the count action in argparse .
2 回答
在挖掘docopt(已关闭)问题列表后,I have found that the right way to represent this将是:
也就是说,必须使用符号“
...
”来表示选项可能多次出现 . 在这种情况下,该选项将被正确计算 . 如果使用test.py -vvv
调用上述程序,它将正确打印:{'-v': 3}
符号“
...
”也可以与带有参数的参数和选项一起使用,只需点击上面的链接就可以得到一个例子 .(这只是对上述内容的评论,但作为评论会变得尴尬 . )
这可以扩展为将列表作为参数传递:
我们这样做
等等 .