我有一个脚本,可以同时使用gui或不使用gui来执行,它具有一些可选参数,例如-g用于选择显示gui,输入路径和输出路径,而该参数都是可选的,我希望它们是可选的当gui激活时,执行不带gui的脚本时非可选。我该如何进行这项工作?
您可以如下访问command line arguments
:
import sys
print("Python Script Name : ", sys.argv[0])
print("Arguments passed are")
for i in range(1, len(sys.argv)):
print(sys.argv[i])
我建议以下内容:基于argparse
构建选项处理器功能并处理sys.argv
(默认值)。但是,让该函数接收一个名为batch_mode
的布尔参数,其默认值为False
。将batch_mode
的值分配给您希望条件有条件的参数“必需”的所有位置(取决于是否调用了GUI)。请注意,此函数应既构造解析器又在sys.argv
上使用它。
现在,使用默认值batch_mode
运行一次功能。然后,如果指定了-g
,请再次运行该函数,仅这次通过batch_mode=True
,从而需要所有非GUI参数。当然,这可能需要对该函数进行两次调用,但是所需的额外编码量将很小。