【问题标题】:How to add an optional parameter with a mandatory field, if chosen?如果选择,如何添加带有必填字段的可选参数?
【发布时间】:2017-09-25 16:20:17
【问题描述】:

我使用docopt 来处理我的脚本的参数。

我有一个案例,我想允许在我的脚本中“添加”或“删除”某些内容。 “添加”或“删除”操作不是强制性的,但如果选择其中任何一个,则需要一个参数(“添加”或“删除”的“事物”)

如何组合:

  • 通过[-a|-d]定义的两个可选参数(互斥)
  • 带有强制参数,是否应该提供-a-d 中的任何一个?

我尝试了几种条件嵌套的变体,例如

"""
Usage:
    hello.py [[-a|-d] FILE]

Options:
    -a  add a file
    -d  delete a file
    FILE file to be added or deleted
"""

import docopt

args = docopt.docopt(__doc__)
print(args)

但脚本会运行,尽管只是将 -a 作为参数提供(它应该转储帮助,因为缺少一个参数)

【问题讨论】:

    标签: python docopt


    【解决方案1】:

    我通过多个Usage 条目找到了一种方法:

    """
    Usage:
        hello.py [-a|-d] FILE
        hello.py
    
    Options:
        -a  add a file
        -d  delete a file
        FILE file to be added or deleted
    """
    
    import docopt
    
    args = docopt.docopt(__doc__)
    print(args)
    

    这允许两种(或更多)情况:当没有参数时,或者当有-a-d + 强制FILE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      相关资源
      最近更新 更多