【问题标题】:Python2.7 argparse require none or both optionsPython2.7 argparse 需要一个或两个选项
【发布时间】:2013-04-12 06:17:09
【问题描述】:

我正在尝试编写一个脚本,当用户选择使用一个选项(比如--foo)时,他们需要使用另一个选项(比如--bar)。此外,如果他们不选择 --foo 选项,则不需要 --bar 选项。我发现的最接近的东西是 add_subparsers() 方法,但具体来说似乎不是用于选项。

如果有的话,最好的方法是什么?

【问题讨论】:

  • 如果您有幸添加模块,请查看 docopt - docopt.org
  • 谢谢,@GoingTharn。我去看看。

标签: python python-2.7 command-line-arguments argparse


【解决方案1】:

我发现这种类型的东西对于 argparse 来说有点过于复杂,无法单独处理。我所做的是这样的:

parser = argparse.ArgumentParser()
parser.add_argument("--foo", action='store_true', help="Foos something. Must use --bar if --foo is used.")
parser.add_argument("--bar", action='store_true', help="Bars something.")

parsed_args = parser.parse_args()

if parsed_args.foo and not parsed_args.bar:
    sys.stderr.write("ERROR: Must use --bar if using --foo\n")
    parser.print_help()
    sys.exit(1)

【讨论】:

    猜你喜欢
    • 2018-12-25
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2021-12-18
    • 2021-03-03
    相关资源
    最近更新 更多