2
我寫一個程序,如:Python:如何在使用argparse的subparser中擁有互斥組?
import argparse
def task1(args):
print "running task 1"
def task2(args):
print "running task 2"
if __name__=="__main__":
parser=argparse.ArgumentParser(description="How can I have mutually exclusive groups in subparsers?")
subparsers=parser.add_subparsers()
t1sub=subparsers.add_parser("task1")
#....
t1sub.set_defaults(func=task1)
# here I would like to have a mutually exclusive group
# when task 1 of the option one between --in and --out is required, but one excludes the other
# apparently a subparser has no add_group() not add_mutually_exclusive_group(), though
t2sub=subparsers.add_parser("task2")
#....
t1sub.set_defaults(func=task2)
args = parser.parse_args()
args.func(args)
正如所解釋的,當我運行--in
或--out
之間TASK1需要一個而不是兩個。 如何將此功能添加到我的程序?
我很抱歉,但什麼是_SetAction的作用? (無論如何,謝謝你的回答,我試圖讓它工作)。 另外,你知道如何在func1中,我只能導入p1sub解析器(+主解析器之一)的參數值而不是p2sub解析器的參數值? – lucacerone 2013-03-26 20:33:13
'_SetAction'?也許你會''StoreTrueAction'嗎?它是'add_argument()'調用的返回值,由Python解釋器響應。 – 2013-03-26 20:35:34
不確定您的意思是「只導入p1sub解析器參數的值」*。 'parser.parse_args()'函數只返回匹配子解析器參數的值。 – 2013-03-26 20:36:45