【问题标题】:How do I make an argument optional if a condition is met?如果满足条件,如何使参数成为可选参数?
【发布时间】:2012-10-07 06:25:32
【问题描述】:

我刚从docopt 开始,我正在尝试编写一个用法命令,如果该命令匹配某些内容,它将接受一个或多个可选参数。这是它的当前状态:

Usage:
  script.py voucher (add|del) <code> <credits> [<points>]

在这里,首先使用voucher 命令,然后使用adddel。我想改行,如果使用addcodecredits 参数都是必需的,但points 是可选的。

但是,如果改用del,则只需要code 参数。

我怎样才能做到这一点?

【问题讨论】:

  • 我对docopt不太熟悉,但我希望script.py voucher (add &lt;code&gt; &lt;credits&gt; [&lt;points&gt;] | del &lt;code&gt;)

标签: python command-line-arguments


【解决方案1】:
"""S.O. 12766628

Usage:
    script.py voucher add <code> <credits> [<points>]
    script.py voucher del <code>
"""
from docopt import docopt


if __name__ == '__main__':
    arguments = docopt(__doc__, version='S.O. 12766628')
    print(arguments)

做你需要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 2017-08-12
    • 2020-05-12
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    相关资源
    最近更新 更多