argparse介绍:
argparse 模块是python的标准库,是一个命令行解析(分析)库。
可以处理命令行中的:可选参数 和 位置参数
命令行中的:位置参数 是必选的,前面不需要加 -
命令行中的:可选参数 是可选的,前面需要加 -来指定可选参数,如 -h(--help) -t -s(--src) -d(--dst) -n(--num) ....
命令行的格式:
cmd>> python xx.py [可选参数1 可选参数2 ...] 位置参数1 位置参数2 ...
argparse官方文档:
https://docs.python.org/zh-cn/3/howto/argparse.html
基本用法:
导入:
import argparse
实例化一个解析器:
parser = argparse.ArgumentParser(description='描述脚本的作用'),参数如下:
prog 可选,程序脚本的名称,默认值为:sys.argv[0]。
usage 可选,程序脚本的使用说明,默认值为:根据参数自动生成。
description 用于描述脚本的功能作用,默认为空。一般只指定description即可。
epilog 可选, 显示完-help信息后的结尾文本。
prefix_chars 可选,-命令的前缀,默认是"-" 。
add_help 可选,是否增加-h/–help选项,默认是True。
添加命令行的位置参数(positional arguments):
语法:parser.add_argument(dest,...,name=value,...)
parser.add_argument(dest='w',nargs='*', type=argparse.FileType('br'), help='显示帮助的文本')
dest 可以指定多个dest。字符串类型。给位置参数或可选参数关联的名字而已。
name 可选,可以指定多个name。表示位置参数或可选参数的标识符名字。
metavar 可选,字符串类型。可以描述dest的类型。
nargs 可选,指定位置/可选参数后面的value有多少个,默认为1。可以指定:"*"(0个或多个value)、"+"(1个或多个value)、"?"(0个或1个)、整数。
type 可选,指定位置/可选参数的数据类型,默认为str。可以指定是type=argparse.FileType('w'),参数需要指定模式,默认为'r'模式。
choice 可选,指定位置/可选参数的取值范围。
添加命令行的可选参数(optional arguments):
语法:parser.add_argument(option_string,option_string,...,name=value,...)
parser.add_argument('-t', '--test', action='store_true',help='显示帮助的文本')
action 可选,字符串类型,当读取的参数中出现指定参数的时候的行为。取值:'store_true'、'append_const'
const 可选,可以指定内置函数(不需要带括号)
default 可选,表示位置参数和可选参数的默认值,可以指定python中提供的类型 或 内置函数(不需要带括号)。默认值是default=sys.stdout。
required 可选,表示可选参数必须输入,只支持可选参数的设置。指定布尔值类型,默认为True。
注意:const 和 default 参数可以同时存在,同时存在的使用规则如下:
如果cmd命令行中传入了这个 位置参数,则使用const指定的值,或调用const指定的内置函数
如果cmd命令行中没传入这个 位置参数,则使用default指定的值,或调用default指定的内置函数
打印帮助信息:
parser.print_help()
获取 位置参数 和 位置参数 进行解析:
args = parser.parse_args() #返回一个Namespace对象。
#该Namespace对象保存着 位置参数 和 可选参数的信息。