其实,研究了好久才研究明白这个东东,所以先过来记录下,免得以后忘记了又不知道去哪里哭.... T^T
首先呢,argparse是一个
模块!
也就是说呢,它要运行在命令行下,嗯,就是命令行窗口这个页面。
image.png
来,接下来做个小测试
首先,新建一个文件,命名为Test.py,然后敲入如下代码....
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
接下来,我们到这个项目的目录下运行下面的命令
python Test.py --help
然后命令行会打印下面的结果!
image.png
这个时候,程序已经能够给我们一定的反馈啦~~~ (-h这个参数表示帮助信息, 现在由于我们还没有做进一步的工作,所以它只有-h这一个命令啦~)
现在,让我们添加一个参数吧~ 修改代码至下面这个样子
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!
biu,结果在这里~
image.png
首先第一条命令,反馈给我们了一个错误信息(error: the following arguments are required: echo)告诉我们缺少一个叫做
的参数。显然这个参数就是我们刚刚在代码中创建的那个~
接下里,我们来看第二条命令,我们
了这个文件(相当于我们在问“哎呀,这个文件我要怎么用呀”,然后程序一本正经的回答“嗯,你需要给我一个叫做echo的参数”)
知道了怎么使用了,接下来就是正确的使用
这个文件啦。于是我们有了第三个命令,第三个命令中,
就是我们想要传给程序的参数。回看代码,我们使用了
命令来打印
的信息,所以最后程序也对我们喊
。
接下来我们就可以为所欲为了A.A,调整各种参数看看会有什么神奇的现象发生诶~
首先,我们可以为Test.py这个脚本文件创建一些描述信息。
parser = argparse.ArgumentParser()
parser.description='叫我出来干嘛!'
当输入
时就会跳出来啦
image.png
或者输入两个数字计算他们的乘积
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)
:程序中使用了
来接收数字
image.png
如果我们不想输入某些参数怎么办呀?
简单!直接在他们名字前添加--就好啦~ 我们对刚刚的程序做个小修改
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()
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)
不过这次由于有些参数不确定是否输入,所以在输入参数的时候我们需要告诉程序我们想要对哪个参数赋值~
image.png
每次都要输入
或者
好累啊有木有.... 好懒的 T^T,所以我们再做些修改吧,尽可能的偷个懒=-=
import argparse
parser = argparse.ArgumentParser()
parser.description='喂我两个数字,我就吐出他们的积'
parser.add_argument("-a","--ParA", help="我是A",type=int)
parser.add_argument("-b","--ParB", 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)
现在,我们就可以用
或者
输入参数啦~似乎也没有轻松多少....都是骗人的T^T
image.png
emmm.... 接下来.... 没有了... 因为懒.... 更多资料可以戳这里呀!!!,官方指南,值得拥有.... 溜了溜了
image.png