我是Argparse模块的新成员。我的剧本快写完了,但有些事我找不到办法。在
脚本如下:
import argparse
def function1(a, b, c):
#mystaff
def function2(e, f):
#mystaff
def function3(g):
#mystaff
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='blahblah')
parser.add_argument('-a','--a', help='blahblah', required=False, default="defaultvalue")
parser.add_argument('-b','--b', help='blahblah', required=False)
.......
args = parser.parse_args()
function1(args.a,args.b,args.c)
我想从命令提示符调用脚本。现在,我可以用这个来调用function1
:
python myscript.py -a <var>
我想要的是:
python myscript.py -a <var>
:按现在的样子调用函数1
python myscript.py function2 -c <var>
:只调用函数2
python myscript.py function3 -g <var>
:只调用函数3
所以,如果我不指定函数,function1是默认值,否则我也必须从命令提示符处传递函数名。有什么想法吗?在
要调用相关函数,您需要添加
const=function1
您可以看到这个problem作为正确答案
默认子命令
如果您希望有子命令,并且在没有指定子命令的情况下将其中一个设为默认值,则不能使用典型的subparser方法。在
您需要分两次执行argparse:
处理
help
如果希望
help
选项有用,则需要做更多的工作:这应该可以做到:
^{pr2}$你可以这样做。使用set_defaults(func=您的_函数)
然后您可以正确访问do\u function()
相关问题 更多 >
编程相关推荐