我认为我的问题与this问题非常相似,但这并不精确,很遗憾,我无法推断我的解决方案。
我有一些仅在另一个参数设置为“ False”时才要使用的参数。否则,这些参数将不是必需的,并且实际上不应提供。
目前,我的代码基本上是这样的:
if __name__ == '__main__':
parser = argparse.ArgumentParser()
#Arguments that will always be mandatory
#str2bool is a function I have to detect T/F, which I've verified works
parser.add_argument('--null_variants_provided', type=str2bool, nargs='?',
help='Are you providing a list of null variants?
If not, more arguments will be required',
required=True)
args = parser.parse_args()
#Options that will sometimes be necessary
if args.null_variants_provided is False:
parser.add_argument('--LCR_regions_file',
help='I need to be required if
above argument is False', required=True)
args = parser.parse_args()
我怀疑,我链接的解决方案对我不起作用的原因是,它只是检查是否通过了特定的参数,而不是在检查该参数是什么。我怀疑上面的解决方案不起作用的原因是,因为我第一次设置args时,代码会检查传递了哪些参数,并且如果还有其他参数(即我稍后定义的参数),则会抛出错误。
你们能想到一种方法吗?