Python之argparse

定义:argparse是python标准库里面用来处理命令行参数的库

命令行参数分为位置参数和选项参数:

位置(必选)参数:前面不需要-或者–;

可选参数:通过一个-来指定的短参数,如-h;通过–来指定的长参数,如- -help

使用步骤:

(1)import argparse 首先导入模块

(2)parser = argparse.ArgumentParser() 创建一个解析对象

(3)parser.add_argument() 向该对象中添加你要关注的命令行参数和选项

(4)args = parser.parse_args() 进行解析 或者 args,unparsed = parser.parse_known_args()

(5)索引参数args.pospath

(4‘)或者args = vars(parser.parse_args())将其变为一个字典

(5‘)索引参数 args[‘pospath’]

函数参数:

argparse.ArgumentParser 一般我们只选择用description

ArgumentParser对象保存了所有必要的信息,用以将命令行参数解析为相应的python数据类型。

prog=None - The name of the program (default: sys.argv[0]) 程序文件名
usage=None - The string describing the program usage (default:
generated from arguments added to parser) 程序使用说明 description=None -
help时显示的开始文字 Text to display before the argument help (default: none)
epilog=None, - help时显示的结尾文字 parents=[], -若与其他参数的一些内容一样,可以继承
formatter_class=argparse.HelpFormatter, - 自定义帮助信息的格式
prefix_chars=’-’, - 命令的前缀,默认是‘-’ fromfile_prefix_chars=None, -
命令行参数从文件中读取 argument_default=None, - 设置一个全局的选项缺省值,一般每个选项单独设置
conflict_handler=‘error’, -
定义两个add_argument中添加的选项名字发生冲突时怎么处理,默认处理是抛出异常 add_help=True -
是否增加-h/–help选项,默认是True)

parser.add_argument()

通过add-argument()方法来给ArgumentParser对象添加新的命令行参数,参数的类型和相应的处理方法由不同的参数决定。

name or flags… - 必选参数名或者可选参数标识符,它必须作为add_argument()方法的第一个参数。 dest
这个参数相当于把位置参数或者选项参数关联到一个特定的名字 action - 表示值赋予键的方式,这里用到的是bool类型,action意思是当读取的参数中出现指定参数的时候的行为 help -
参数的说明信息 required - 说明参数是否必须进行输入,只支持可选参数。 type - 指定命令行参数数据类型
choices - 说明命令行参数的取值范围,它的值一般是一个列表。choices列表中元素的类型应该与type批定的类型相兼容
nargs -
指定这个参数后面的value有多少个,默认为1,如果设定为数字,比如2,表示接受2个value;如果设定为‘?’那么就只接受1个或者0个value,当0个value是默认值是default的value;如果设定为‘*’,后面可接多个value
default - 必选参数和可选的参数的默认值。

args=parser.parse_args(args=None, namespace=None)

parse_args()方法将命令行参数字符串转换为相应对象并赋值给Namespace对象的相应属性,默认返回一个Namespace对象。

args - List of strings to parse. The default is taken from
sys.argv. 字符串列表,默认来自sys.argv namespace - An object to take the
attributes. The default is a new empty Namespace object.
对象名,默认是一个空Namespace对象。

args,unparsed = parser.parse_known_args()

args为namespace空间,包含程序定义了的命令行参数,而unparsed为程序没有定义的命令行参数。和上面函数不一样的在于,如果命令行输入没有定义的参数,不会报错(但是上面的会报错),并且返回一个列表给unparsed,里面包含的就是未定义的输入参数。

示例
编写py文件 get.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-t", "--timer_name", help="timer name")
parser.add_argument("-p", "--project", help="project name")
args = parser.parse_args()

print("-t:%s" % args.timer_name)
print('-p:%s' % args.project)

在命令行输入 python get.py -t 123 -p 456

输出:

-t:123
-p:456

你可能感兴趣的:(python)