时
我使用 docopt
处理脚本的参数。
我有一个我想允许"添加"或"删除"某些内容的情况。"添加"或"删除"操作不是操纵性的,但是如果选择了任何一个,则需要一个参数(" thing"要" add"或" delete")
我如何结合:
- 通过
[-a|-d]
定义的两个可选参数(相互排斥) - 使用强制性参数,应该提供
-a
或-d
中的任何一个吗?
我尝试了几种有条件筑巢的变体,例如
"""
Usage:
hello.py [[-a|-d] FILE]
Options:
-a add a file
-d delete a file
FILE file to be added or deleted
"""
import docopt
args = docopt.docopt(__doc__)
print(args)
,但是脚本仍在运行,尽管仅将-a
作为参数(它应该丢弃帮助),因为缺少参数之一)
我通过多个Usage
条目找到了一种方法:
"""
Usage:
hello.py [-a|-d] FILE
hello.py
Options:
-a add a file
-d delete a file
FILE file to be added or deleted
"""
import docopt
args = docopt.docopt(__doc__)
print(args)
这允许两个(或更多)情况:当没有参数时,或者有-a
或-d
强制性FILE