一:argparse 定义:
argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来
二、基本框架
代码目的:argparse从命令行获取用户名,然后打印’Hello ‘+ 用户名,假设python文件名为print_name.py
# file-name:print_name.py
import argparse
def get_parser():
#argparse.ArgumentParser函数生成argparse对象
#其中这个函数的description函数表示在命令行显示帮助信息的时候,这个程序的描述信息
parser = argparse.ArgumentParser(description="Demo of argparse")
#通过对象的add_argument函数来增加参数。这里我们只增加了一个--name的参数。
#default参数表示如果没提供参数,我们默认采用的值。
parser.add_argument('--name', default='Great')
return parser
if __name__ == '__main__':
parser = get_parser()
#argpaser对象的parser_args函数来获取所有参数args
#argparse默认的参数名就是--name形式里面--后面的字符串
args = parser.parse_args()
name = args.name
print('Hello {}'.format(name))
结果显示
- 生成arg对象: parser = argparse.ArgumentParser(description=“Demo of argparse”)
- 添加参数以及设置默认信息: parser.add_argument(’–name’, default=‘Great’)
- 调用函数生成args函数的实例:
def get_parser():
return parser
parser = get_parser()
- 获取实例对象的参数:args = parser.parse_args()
三、介绍add_argument()的参数
- default:没有设置值情况下的默认参数
- required: 表示这个参数是否一定需要设置,不赋值会报错
- type:参数类型
- choices:参数值只能从几个选项里面选择。eg.choices=[‘alexnet’,
‘vgg’]设置的参数只可以是alexnet或vgg - help:指定参数的说明信息。help参数的值可以给使用工具的人提供该参数是用来设置什么的说明,对于大型的项目,help参数和很有必要的,不然使用者不太明白每个参数的含义,增大了使用难度。
命令行加-h或–help参数运行该命令 - dest:设置参数在代码中的变量名:argparse默认的变量名是–或-后面的字符串,但是你也可以通过dest=xxx来设置参数的变量名,然后在代码中用args.xxx来获取参数的值。
- nargs: 设置参数在使用可以提供的个数
例子如下:这里nargs=3
$ python nargs.py -name A B C
Hello to A, B, C