Python传参-Argparse模块练习
参考链接:
Python3.7 - Argparse模块讲解
上面的写的很好!
最简demo实现:
在Test.py中写入下面代码:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)
分别在终端输入下面三行命令:
python Test.py
python Test.py --help
python Test.py Wow!
基本上可以看出,这里没有办法指定参数名称,只能随便输入一个值进去,进去了,就被echo这个变量接住了。
指定变量:
import argparse
parser = argparse.ArgumentParser()
parser.description='喂我两个数字,我就吐出他们的积'
parser.add_argument("ParA", help="我是A",type=int)
parser.add_argument("ParB", help="我是B",type=int)
args = parser.parse_args()
print('嗯,好吃!积是',args.ParA*args.ParB)
程序中使用了type=int来接收数字,即拿到的参数值,直接被转化为int类型,而不是默认的str类型。输入其他类型的,会报错!
接下来就是加默认值了
import argparse
parser = argparse.ArgumentParser()
parser.description='喂我两个数字,我就吐出他们的积'
parser.add_argument("-a", "--ParA", default=4, help="我是A",type=int)
parser.add_argument("-b", "--ParB", default=3, help="我是B",type=int)
args = parser.parse_args()
if args.ParA:
print("我只吃到了A,它是",args.ParA)
if args.ParB:
print("我只吃到了B,它是",args.ParB)
if args.ParA and args.ParB:
print("啊,两个都吃到啦!积是",args.ParA*args.ParB)
就可以不输入值了。
直接执行:
> python argparse_dome.py
我只吃到了A,它是 4
我只吃到了B,它是 3
啊,两个都吃到啦!积是 12
或者:
> python argparse_dome.py -a=2 -b=4
我只吃到了A,它是 2
我只吃到了B,它是 4
啊,两个都吃到啦!积是 8