gpt4 book ai didi

python - docopt 不允许可选参数

转载 作者:行者123 更新时间:2023-12-05 04:17:38 24 4
gpt4 key购买 nike

我在 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.0\Common7\IDE\Extensio
ns\Microsoft\Python Tools for Visual Studio\2.0\visualstudio_py_util.py", line 7
6, in exec_file
exec(code_obj, global_variables)
File "C:\Users\mryan\Documents\Code\cli\cli_front.py", line
49, in <module>
arguments = docopt(__doc__, version='1.0.0rc2')
File "C:\Users\mryan\Documents\Code\cli\common\docopt.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 中的用法,我看不出 CLI 如何区分是否存在可选的 devices_file。

在您的第二个示例中,它似乎假设 531 是您的 optional ,而您只是错过了您的 ,因为它无法将“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]

关于python - docopt 不允许可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21600130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com