我第一次尝试使用docopt。到目前为止,这是我的用法声明:
Test Control Program
Usage:
test.py bitwrite ([--off=<bits>...][--on=<bits>...])
test.py regwrite ([regA | regB]<value>)
Options:
-o <bits>... --off <bits>... #Turn bits off
-i <bits>... --on <bits>... #Turns bits on
所以,我没有问题test.py bitwrite -o bitA,bitB,bitC,bitD
假设有一个用户不熟悉我的系统,他们需要知道位值的正确值。
有没有办法使用用法语句指定它?我已经尝试过几件事情并且没有任何工作。
答案 0 :(得分:1)
您可以在__doc__
的单独部分中指定它们,作为示例 -
Test Control Program
Usage:
test.py bitwrite ([--off=<bits>...][--on=<bits>...])
test.py regwrite ([regA | regB]<value>)
Options:
-o <bits>... --off <bits>... #Turn bits off
-i <bits>... --on <bits>... #Turns bits on
Arguments:
bits: 1 - on
0 - off
请注意Arguments
不是docopt认可的任何特殊名称,只是任何名称,您可以使用任何您想要的合适名称。
在上面,Arguments
部分将显示位和其他参数的有效值。
然后当使用--help选项运行上述doc时,您将获得结果 -
>>>> python a.py --help
Test Control Program
Usage:
test.py bitwrite ([--off=<bits>...][--on=<bits>...])
test.py regwrite ([regA | regB]<value>)
Options:
-o <bits>... --off <bits>... #Turn bits off
-i <bits>... --on <bits>... #Turns bits on
Arguments:
bits: 1 - on
0 - off
如果您想显示完整的__doc__
而无需指定--help
或-h
选项,则在调用DocoptExit
时可以捕获docopt()
异常功能并在那时打印__doc__
。
示例 -
"""Test Control Program
Usage:
test.py bitwrite ([--off=<bits>...][--on=<bits>...])
test.py regwrite ([regA | regB]<value>)
Options:
-o <bits>... --off <bits>... #Turn bits off
-i <bits>... --on <bits>... #Turns bits on
Arguments:
bits: 1 - on
0 - off
"""
from docopt import docopt, DocoptExit
if __name__ == '__main__':
try:
arguments = docopt(__doc__, version='Test Control Program')
print(arguments)
except DocoptExit:
print(__doc__)