我在docopt中具有以下用法:
cli.py add_user <user_file> [<devices_file>] <destination_account> <token>
cli.py remove_user (--id|--username) <user_id> <source_account> <token>
其中 [<devices_file>]
是可选的参数。
但是,当我尝试使用它时,我会遇到错误。
这可以正常工作:
add_user user_29087.json dev_29087.json 531 token
这引发错误:
add_user user_29087.json 531 token
错误:
Traceback (most recent call last):
File "C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEExtensio
nsMicrosoftPython Tools for Visual Studio2.0visualstudio_py_util.py", line 7
6, in exec_file
exec(code_obj, global_variables)
File "C:UsersmryanDocumentsCodeclicli_front.py", line
49, in <module>
arguments = docopt(__doc__, version='1.0.0rc2')
File "C:UsersmryanDocumentsCodeclicommondocopt.py", l
ine 581, in docopt
raise DocoptExit()
DocoptExit: Usage:
cli.py get_token
cli.py add_user <user_file> [<devices_file>] <destination_account> <token>
cli.py remove_user (--id|--username) <user_id> <source_account> <token>
cli.py get_users <account_id> <token>
任何人都可以看到我在做错什么吗?
在您在add_user中的使用中,我看不出如果有可选的devices_file,我看不出CLI会如何区分。
在您的第二个示例中,似乎假设531是您的可选,而您只是缺少您的,因为它无法将" 531"条目解释为设备文件。
由于devices_file是可选的,所以我会这样写:
Usage:
add_user <user_file> <destination_account> <token> [<devices_file>]
或
Usage:
add_user <user_file> [-d DEVFI | --devices-file=DEVFI] <destination_account> <token>
Options:
-d DEVFI --devices-file=DEVFI Optional devices file for blah.
请注意,在文档中,选项几乎总是在结尾完成。
"""Naval Fate.
Usage:
naval_fate.py ship new <name>...
naval_fate.py ship <name> move <x> <y> [--speed=<kn>]
naval_fate.py ship shoot <x> <y>
naval_fate.py mine (set|remove) <x> <y> [--moored | --drifting]