Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否使用带可选参数的docopt双破折号选项?_Python_Docopt - Fatal编程技术网

Python 是否使用带可选参数的docopt双破折号选项?

Python 是否使用带可选参数的docopt双破折号选项?,python,docopt,Python,Docopt,使用docopt,有没有一种方法可以创建一个双虚线参数,该参数可以使用等号,也可以不使用等号 我希望以下两个命令都使--tls为true: cmd --tls cmd --tls=true 我似乎只能通过使用 Options: --tls 或 用逗号分隔它们似乎不起作用 Options: --tls, --tls=false 我也有同样的问题。 我找不到解决方案,但以下是我最好的解决方案: """ Usage: test.py [tls [-

使用docopt,有没有一种方法可以创建一个双虚线参数,该参数可以使用等号,也可以不使用等号

我希望以下两个命令都使--tls为true:

cmd --tls
cmd --tls=true
我似乎只能通过使用

Options:
  --tls

用逗号分隔它们似乎不起作用

Options:
  --tls, --tls=false                  
我也有同样的问题。 我找不到解决方案,但以下是我最好的解决方案:

"""
Usage:
  test.py [tls [--true|--false]]
"""
from docopt import docopt
arguments = docopt(__doc__)
if arguments['tls'] and not (arguments['--true'] or arguments['--false']):
    arguments['--true'] = True
因此,参数选项是:

cmd
cmd tls
cmd tls --true
cmd tls --false
请注意,这是区分大小写的,如果将TLS大写,则可能存在错误:

另一种选择:

"""
Usage:
    script.py [--tls [<tlsval>]]
"""
from docopt import docopt
arguments = docopt(__doc__)
assert arguments['<tlsval>'] in (None, 'true', 'false'), "invalid tls value -- expected true or false"
这一个可以得到--参数,但不能在--参数后加上=参见如何在
argparse
中执行类似操作;你也许可以从它的帮助下向后工作!这是可行的:
--tls=(true | false)使用tls加密[default:true]
,但可能不是您真正想要的。考虑打开一个。
"""
Usage:
    script.py [--tls [<tlsval>]]
"""
from docopt import docopt
arguments = docopt(__doc__)
assert arguments['<tlsval>'] in (None, 'true', 'false'), "invalid tls value -- expected true or false"
"""
Usage:
   script.py [--MAS|--GPI [RESEND|ADD|REMOVE|SKU]]

Options:
    --MAS                   only do MAS step
    --GPI                   only do GPI step, optionally specify ADD/REMOVE/SKU (default is RESEND)
        RESEND            only GPI, strategy=RESEND (default for --GPI)
        ADD               only GPI, strategy=ADD
        REMOVE            only GPI, strategy=REMOVE
        SKU               only GPI, strategy=SKU
"""
from docopt import docopt
arguments = docopt(__doc__)
strategy = [k for k in ['RESEND', 'ADD', 'REMOVE', 'SKU'] if arguments[k]]
strategy = strategy[0] if strategy else "RESEND" #resend is default