自定义输入参数值,argparse.ArgumentParser()

参考:

http://blog.chinaunix.net/uid-23062171-id-4392178.html

https://www.cnblogs.com/dengtou/p/8413609.html

https://blog.csdn.net/u013946404/article/details/78188266

定义: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,里面包含的就是未定义的输入参数。

 

你可能感兴趣的:(python)