Argparse模块用法
刚开始学习这个模块,记录下,方便后续学习。
argparse是一个命令行参数解析模块,也就是说它要运行在命令行下,,就是命令行窗口这个页面。
argparse基本使用框架
首先新建一个文件,命名为’test.py’,然后敲入如下代码
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
接下来,到这个项目的目录下运行下面的命令
python test.py --help
然后命令行会打印下面的结果
这个时候,通过在命令行对项目的执行,程序已经能够给一定的反馈了,(-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 hello!
运行结果在这里
第一条命令反馈了一个错误信息(error: the following arguments are required: echo),意思是缺少一个叫做echo的参数,显然这个参数就是我们刚刚在代码中新创建的那个。
第二条命令help了这个文件,相当于问程序的使用方法,然后程序回答:需要给我一个叫做echo的参数。
第三条命令就是要正确使用test.py这个文件啦,hello!作为传给程序的参数,回看代码中,我们使用了"print(args.echo)"命令来打印echo的信息,最后程序也会对你say hello!。
接下来,我们就可以再试试更多的参数。首先在对模块实例化对象时就可以新增一些描述信息。
import argparse
parser = argparse.ArgumentParser(description="一个关于argparse的小例子")
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)
description是用来描述这个参数解析器是干什么的,当我们在命令行显示帮助信息的时候会看到description描述的信息。(-h和–help是一样的作用,都可以查看帮助信息)
接下来看一个较为完整的例子
import argparse
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('-n','--name', default=' Li ')
parser.add_argument('-y','--year', default='20')
args = parser.parse_args()
print(args)
name = args.name
year = args.year
print('Hello {} {}'.format(name,year))
在上面的例子中,我们增加了两个参数name和year,其中’-n’和’–name’表示同一个参数,default参数表示我们在运行命令是若没有提供参数,程序会将此值当作参数值,执行结果如下图所示。
最后采用对象的parse_args获取解析的参数,有上图可以看到,Namespace中有两个属性(也叫成员),这里有个需要注意的问题,当’-‘和’–'同时出现的时候,系统默认后者为参数名,前者不是,但是在命令行输入的时候没有这个区分。
接下来就可以打印参数信息啦,按照下面语句执行结果如下。