所以基本上我确实坐在我的代码上用argparse框架工作,但我确实有一个问题,我不知道如何实现。
基本上,我有多个函数,我把它们保存在一个dict中,所以我可以通过键来调用它,这些函数有多个参数(还有更多的参数)。
因此,所有东西的输入都在代码的最后一行,我把它注释出来,因为它应该像这样RUN。
结果应该是Key()的名称和被解析成参数的值(VALUE1, VALUE2........)。
#filename: testfiler.py
import argparse
def filterOne(par1):
print(par1)
def filterTwo(par1,par2):
print(par1,par2)
def filterThree(par1,par2,par3):
print(par1,par2,par3)
#.... more functions to come
filters = {
"filterOneKey": filterOne,
"filterTwoKey": filterTwo,
"filterThreeKey": filterThree
parser = argparse.ArgumentParser()
parser.add_argument('--filter', choices= (list(filters.keys())))
parser.add_argument('--filteragrument',metavar='Value',nargs='+') #not sure if it is correct
args = parser.parse_args()
filter = args.filter(args.filteragrument) #not sure if it is correct
print(filter) #show key() ✔️, but need to show the parameter which are parsed into filterargument (Value1,Value2....)
#should RUN like this:
#python Tool/testfilter.py --filter filterTwoKey --filterargument Value1=23,Value2=55