我想使用 docopt
来解析可以多次接收相同选项的命令行。有人可以解释一下该怎么做吗?
一个测试例子:
#!/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 .
最佳答案
在挖掘 docopt(已关闭)问题列表后,I have found that the right way to represent this会是:
#!/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 -vvv
调用上面的程序,它将正确打印:
{'-v': 3}
符号“...
”也可以与参数和选项一起使用,参数和选项采用几乎相同的方式获取参数,只需点击上面的链接即可获取示例。
关于python - docopt 的选项多样性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18468123/