我第一次尝试使用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
假设有一个用户不熟悉我的系统,他需要知道比特值的正确值。
有什么方法可以使用usage语句来指定吗?
您可以在__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选项运行上述文档时,您将得到结果为-
>>>> 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
选项,您可以在调用docopt()
函数时捕获DocoptExit
异常并在当时打印__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__)