Python传参-Argparse模块练习

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!

Python传参-Argparse模块练习_第1张图片

基本上可以看出,这里没有办法指定参数名称,只能随便输入一个值进去,进去了,就被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类型。输入其他类型的,会报错!
Python传参-Argparse模块练习_第2张图片

接下来就是加默认值了

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

你可能感兴趣的:(Python)