python 中的可选位置参数

Optional position arguments in python

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

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

上使用它

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

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