首页 文章

如何在docopt中多次指定一个可选参数

提问于
浏览
9

我'd like to design my command line application in a way that one option, let' s称之为评论,可以多次指定,例如,

$ ./my_app.py --comment="Comment 1" --comment="Comment 2"

可以用docopt完成吗?我查看了docopt主页,但找不到对同一可选参数的多个出现的任何引用 .

2 回答

  • 3

    作为参考,官方文档可以是found here at github .

    要回答您的具体问题,可以使用椭圆 ... 和您的可选选项 [--my-option] ,并指定您的选项采用参数 .

    [--my-option=ARG]...[--my-option=<arg>]...

    例:

    """
    Usage:
        my_program [--comment=ARG]... FILE
    
    Arguments:
        FILE       An argument for passing in a file.
    
    Options:
        --comment  Zero or more comments
    """
    

    通过将其指定为 [--comment=<arg>]... ,您可以确保opt ['--comment']是所有指定注释的列表 .

    执行: my_program --comment=ASDF --comment=QWERTY my_file

    导致:

    if __name__ == '__main__':
        opts = docopt(__doc__)
        opts['--comment'] == ['ASDF', 'QWERTY']
        opts['FILE'] == 'my_file'
    
  • 4

    您可以使用 ... 表示重复元素,使用 [ ] 表示它是可选的:

    my_program [comment]...
    

    这表示 comment 是可选的,可以重复 .

相关问题