【问题标题】:Setting default option in Python of two mutually exclusive options using the argparse module使用 argparse 模块在 Python 中设置两个互斥选项的默认选项
【发布时间】:2012-03-11 01:13:06
【问题描述】:
import argparse

parser = argparse.ArgumentParser(description="List or update! That is the question!")

group = parser.add_mutually_exclusive_group()
group.add_argument('-l', '--list', dest="update", action='store_false')
group.add_argument('-u', '--update', dest="update", action='store_true')

args = parser.parse_args()
print args

如果用户没有指定我想要的任何可选参数update=False

[编辑]:我将我的问题改为不那么笼统,这令人困惑。对不起。

【问题讨论】:

  • 你写的是当前的行为,而不是你正在寻找的东西。您是否喜欢当前的行为但发现语法过于冗长?你想要稍微不同的行为吗?
  • 我尽量不那么笼统。我认为现在可以说出我在寻找什么。

标签: python argparse


【解决方案1】:

--list 选项的参数添加default=False 可以满足您的要求。我不完全确定为什么,请注意将其添加到 --update 选项的参数中什么都不做。

【讨论】:

    【解决方案2】:

    我认为你想要add_mutually_exclusive_group()。文档是here

    【讨论】:

    • 我尽量不那么笼统。我认为现在可以说出我在寻找什么。
    【解决方案3】:

    您应该为 2 个选项设置不同的 dest

    group.add_argument('-f', '--foo', dest="foo", action='store_false')
    

    【讨论】:

    • 我尽量不那么笼统。我认为现在可以说出我在寻找什么。
    猜你喜欢
    • 2017-03-12
    • 2018-08-18
    • 2013-12-01
    • 2014-07-29
    • 1970-01-01
    • 2013-11-11
    • 2017-12-11
    • 1970-01-01
    • 2022-01-02
    相关资源
    最近更新 更多