一、简介
argparse
是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse
模块的作用是用于解析命令行参数。
二、使用步骤
解释:
首先导入该模块;
然后创建一个解析对象;
然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;
最后调用parse_args()方法进行解析;
解析成功之后即可使用。
三、创建解析器对象ArgumentParser
prog:程序的名字,默认为sys.argv[0],用来在help信息中描述程序的名称。
usage:描述程序用途的字符串
description:help信息前的文字。
epilog:help信息之后的信息
输出
add_help:设为False时,help信息里面不再显示-h —help信息。
prefix_chars:参数前缀,默认为’-‘
输出
fromfile_prefix_chars:前缀字符,放在文件名之前
argument_default:参数的全局默认值。
conflict_handler:对冲突的处理方式,默认为返回错误“error”。还有“resolve”,智能解决冲突。当用户给程序添加了两个一样的命令参数时,“error”就直接报错,提醒用户。而“resolve”则会去掉第一次出现的命令参数重复的部分或者全部(可能是短命令冲突或者全都冲突)。
输出
添加conflict_handler策略后
输出
四、add_argument()方法,用来指定程序需要接受的命令参数
name or flags:参数有两种,可选参数和位置参数。parse_args()运行时,会用’-‘来认证可选参数,剩下的即为位置参数。定位参数必选,可选参数可选。
添加可选参数:
添加位置参数:
输出,可见缺少位置参数’bar’时候,程序报错
action:参数动作
argparse内置6种动作可以在解析到一个参数时进行触发:
store
保存参数值,可能会先将参数值转换成另一个数据类型。若没有显式指定动作,则默认为该动作。
store_const
保存一个被定义为参数规格一部分的值,而不是一个来自参数解析而来的值。这通常用于实现非布尔值的命令行标记。
store_ture/store_false
保存相应的布尔值。这两个动作被用于实现布尔开关。
append
将值保存到一个列表中。若参数重复出现,则保存多个值。
插入:split()函数 ”-b 100 -b 200”.split() 返回为([‘-b’,‘100’ ,‘-b’, ‘200’]
append_const
将一个定义在参数规格中的值保存到一个列表中。
version
打印关于程序的版本信息,然后退出
count
统计参数出现的次数
nargs:参数的数量
值可以为整数N(N个),*(任意多个),+(一个或更多)
值为?时,首先从命令行获得参数,若没有则从const获得,然后从default获得:
dest:参数值就保存为parse_args()返回的命名空间对象中名为该 dest 参数值的一个属性。
如果提供dest,例如dest=“a”,那么可以通过args.a访问该参数
default:设置参数的默认值
type:把从命令行输入的结果转成设置的类型
choice:允许的参数值
required:是否必选
desk:可作为参数名
help:参数命令的介绍
五、参数有几种写法:
最常见的空格分开:
长选项用=分开 ( “长”选项名字,即选项的名字多于一个字符)
短选项可以写在一起:
感谢
Python命令行解析库argparse