一、介绍
argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse模块的作用适用于解析命令行参数。我们很多时候用到解析命令行参数的程序,目的是在终端窗口能够输入训练的参数和选项(ubuntu是终端窗口,windows是命令行窗口)。
二、使用步骤
常常可以将其简化为四个步骤:
1)import argparse
2)parser = argparse.ArgumentParser()
3)parser.add_argument()
4)parser.parse_args()
解释如下:首先导入模块;然后创建一个解析对象;然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个一要关注的参数和选项;最后调用parse_srgs()方法进行解析;解析成功后可使用。
三、例子说明
接下来就是例子讲解说明,我们可以看到上面的第二个步骤,parser = argparse.ArgumentParse()
他的作用就是:当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器已经调用了print_help()方法)时,会打印这些描述信息,一般只需要传递description参数。
#-*- coding: UTF-8 -*-
import argparse #步骤一
def parse_args():
"""
:return:进行参数的解析
"""
parser = argparse.ArgumentParser(description="you should add those parameter") # 这些参数都有默认值,当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时, # 会打印这些描述信息,一般只需要传递description参数,如上。
parser.add_argument('--addresses',default="sipingroad", help = "The path of address")
parser.add_argument('--gpu', default=0)# 步骤二,后面的help是我的描述
args = parser.parse_args() # 步骤三
return args
if __name__ == '__main__':
args = parse_args()
print(args.addresses) #直接这么获取即可。
我们输入
python arg.py -h
输出提示是:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本博客用于学习记录,内容来源于https://www.cnblogs.com/yibeimingyue/p/13800159.html
argparse是一个python模块:命令行选项、参数和子命令解析器;argparse模块可以让人编写用户友好的命令行接口。程序定义它所需要的参数。
使用流程:
1)创建解析器:
parser = argparse.ArgumentParser(description='Process some intergers.')
使用argparse的第一步就是创建一个ArpumentParse对象,ArgumentParse对象包含将命令行解析成Python数据类型序偶需要的全部信息,
2)添加参数
parser.add_argument('integers', metavar = 'N',type=int,nargs='+',help='an integer for the accumulator') #给一个ArgumentParser添加程序阐述信息使用过调用add_argument()方法完成的。
3)解析参数
parser.parse_args(['--sum', '7','-1', '42'])
Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
ArgumentParse通过parse_args()方法解析参数
ArgumentParser对象
prog - 程序的名称(默认: sys.argv[0],prog猜测是programma的缩写)
usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成)
description - 在参数帮助文档之后显示的文本 (默认值:无)
add_argument()方法
name or flags - 一个命名或者一个选项字符串的列表
action - 表示该选项要执行的操作
default - 当参数未在命令行中出现时使用的值
dest - 用来指定参数的位置
type - 为参数类型,例如int
choices - 用来选择输入参数的范围。例如choice = [1, 5, 10], 表示输入参数只能为1,5 或10
help - 用来描述这个选项的作用