参考:
http://blog.chinaunix.net/uid-23062171-id-4392178.html
https://www.cnblogs.com/dengtou/p/8413609.html
http://iyenn.com/rec/1677782.html
定义:argparse是python标准库里面用来处理命令行参数的库
import argparse
命令行参数分为位置参数和选项参数:
位置(必选)参数:前面不需要-或者--;
可选参数:通过一个-来指定的短参数,如-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,里面包含的就是未定义的输入参数。
评论记录:
回复评论: