我在docopt中的用法语句有问题。
这就是我希望在脚本中使用的方式。可选参数(用 [] 定义),我希望能够将它们一起使用或单独使用。因此,-t -o
或-o
或-t
应该是有效的。目前我不能在没有-t
的情况下使用-o
.如果我使用管道|
将它们分开,我不能同时使用两者。我尝试了各种组合。我似乎无法让它像 id 一样工作。谁能指出我哪里出错了?
"""
Description:
Script does stuff
Usage:
script.py (-d <ditem>) (-u <uitem>) (-p <pitem>) (-s <sfile>) [-t <tfile>] [-o <ofile>] [-v]
script.py (-d <ditem>) (-l) [-t <tfile>] [-o <ofile>] [-v]
script.py -h | --help
script.py --version
Options:
-v --verbose Does stuff
-t --tfile Does stuff
-o --output Does stuff
-l --litem Does stuff
-u --uitem Does stuff
-p --pitem Does stuff
-d --ditem Does stuff
-s --sitem Does stuff
-h --help Show this screen.
--version Show version.
"""
我能够使用以下方法解决此问题:
通过将用法字符串script.py (-d <ditem>) (-l) ([-t <tfile>] | [-o <ofile>]) [-v]
和另一个script.py (-d <ditem>) (-l) [-t <tfile>] [-o <ofile>] [-v]
添加意味着我可以单独使用-t
和-o
,也可以一起-t -o
一起使用。但是我无法按此顺序使用它们-o -t
.
Description:
Script does stuff
Usage:
script.py (-d <ditem>) (-u <uitem>) (-p <pitem>) (-s <sfile>) [-t <tfile>] [-o <ofile>] [-v]
script.py (-d <ditem>) (-l) ([-t <tfile>] | [-o <ofile>]) [-v]
script.py (-d <ditem>) (-l) [-t <tfile>] [-o <ofile>] [-v]
script.py -h | --help
script.py --version
要允许一起-t
、-o
一起-t
和-o
:
Script does stuff.
Usage:
script.py [-t] [-o]
Options:
-t --tfile Does stuff
-o --output Does stuff
如果当-t
和-o
都不存在时出错:
Script does stuff.
Usage:
script.py -t
script.py -o
script.py -t -o
Options:
-t --tfile Does stuff
-o --output Does stuff