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 参数成为必需的。
当然,这可能需要两次调用该函数,但所需的额外编码量将是最少的。
我有一个脚本,可以使用或不使用 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 参数成为必需的。
当然,这可能需要两次调用该函数,但所需的额外编码量将是最少的。