Argparse模块用法

刚开始学习这个模块,记录下,方便后续学习。

argparse是一个命令行参数解析模块,也就是说它要运行在命令行下,,就是命令行窗口这个页面。

python的parser添加参数 python中parse的用法_python

argparse基本使用框架

首先新建一个文件,命名为’test.py’,然后敲入如下代码

import argparse
parser = argparse.ArgumentParser()
parser.parse_args()

接下来,到这个项目的目录下运行下面的命令

python test.py --help

然后命令行会打印下面的结果

python的parser添加参数 python中parse的用法_python的parser添加参数_02


这个时候,通过在命令行对项目的执行,程序已经能够给一定的反馈了,(-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!

运行结果在这里

python的parser添加参数 python中parse的用法_python的parser添加参数_03


第一条命令反馈了一个错误信息(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是一样的作用,都可以查看帮助信息)

python的parser添加参数 python中parse的用法_python的parser添加参数_04


接下来看一个较为完整的例子

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))

在上面的例子中,我们增加了两个参数nameyear,其中’-n’和’–name’表示同一个参数,default参数表示我们在运行命令是若没有提供参数,程序会将此值当作参数值,执行结果如下图所示。

python的parser添加参数 python中parse的用法_命令行_05

最后采用对象的parse_args获取解析的参数,有上图可以看到,Namespace中有两个属性(也叫成员),这里有个需要注意的问题,当’-‘和’–'同时出现的时候,系统默认后者为参数名,前者不是,但是在命令行输入的时候没有这个区分

接下来就可以打印参数信息啦,按照下面语句执行结果如下。

python的parser添加参数 python中parse的用法_python_06