【发布时间】:2022-02-17 18:17:28
【问题描述】:
我是 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>:按原样调用function1
python myscript.py function2 -c <var>:只调用函数2
python myscript.py function3 -g <var>: 只调用函数3
所以,如果我不指定函数,function1 是默认值,否则我也必须从命令提示符传递函数名称。有什么想法吗?
【问题讨论】:
-
如果 argparse 不是严格要求,您可以查看 click (click.pocoo.org),它允许这样的嵌套命令。