【问题标题】:Optional position arguments in python [closed]python中的可选位置参数[关闭]
【发布时间】:2020-09-01 19:17:15
【问题描述】:

我有一个脚本,可以使用或不使用 gui 执行,它有一些可选参数,例如 -g 用于选择显示 gui、输入路径和输出路径,而这些参数都是可选的,我希望它们是激活 gui 时为可选,在没有 gui 的情况下执行脚本时为非可选。我怎样才能做到这一点?

【问题讨论】:

  • 您好。请提供minimal reproducible example,以便我们更好地帮助您
  • 如果使用 argparse,请将 required=True 参数添加到 add_argument() 方法。
  • @mece1390, required 在参数为 positional 时是不允许的。是否为requirednargs决定。
  • 听起来很适合 subparsers 功能。

标签: python arguments command-line-arguments argparse


【解决方案1】:

我的建议如下:构建一个选项处理器函数,基于argparse 和处理sys.argv(默认)。但是,让该函数接收一个名为batch_mode 的布尔参数,默认值为False。将batch_mode 的值分配给所有需要有条件的“必需”参数的地方(取决于是否调用了GUI)。请注意,此函数既要构造解析器,又要在 sys.argv 上使用它。

现在,使用默认值batch_mode 运行一次函数。然后,如果指定-g,则再次运行该函数,仅这次传递batch_mode=True,使得所有非GUI 参数都是必需的。

当然,这可能需要对函数进行两次调用,但所需的额外编码量将是最少的。

【讨论】:

    猜你喜欢
    • 2012-11-21
    • 1970-01-01
    • 2023-04-02
    • 2015-01-28
    • 2013-01-28
    • 2014-12-29
    • 2018-04-29
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多