【问题标题】:Options with multiple arguments具有多个参数的选项
【发布时间】:2017-06-08 02:23:39
【问题描述】:

在不知道这些参数的数量的情况下,是否可以在 docopt 中有多个带有多个参数的选项?

我想用可变数量的参数做这样的事情:

Usage:
    myprog.py --option1 ARG1 ARG2... --option2 ARG3 ARG4 ARG5...

我尝试使用<arg>...,但它只能用作位置参数。

感谢您的帮助。

【问题讨论】:

    标签: python docopt


    【解决方案1】:

    您可以多次给出一个选项,但每次都必须指定该选项。例如,它可能看起来像这样:

    """Example of program with options repeated using docopt.
    Usage:
      myprog.py [--options1=OPT]...
    """
    from docopt import docopt
    
    if __name__ == '__main__':
        arguments = docopt(__doc__)
        print(arguments)
    

    输出如下所示:

    $ python myprog.py --options1=test1 --options1=test2
    {'--options1': ['test1', 'test2']}
    

    【讨论】:

    • 不知道你能做到这一点,谢谢你的信息!但是我要求用户提供文件列表,重复该选项将花费很多时间。我想我会使用我刚刚在another topic 上找到的解决方案,只给出一个由“,”分隔的参数。我不确定这是最好的选择,您认为还有其他方法吗?
    • 使用逗号作为分隔符的解决方案很常见。所以我不会太担心使用它。可能出现的一个问题是,如果选项本身包含逗号 - 那么您将需要某种方式来转义它们。例如,某些文件系统上的文件名可以包含逗号。
    猜你喜欢
    • 2021-06-27
    • 2023-04-07
    • 2018-07-21
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多