文章目录
- @[toc]
- 0. 前言
- 1. 构建ArgumentParser实例
- 2. add_argument方法
- 3. 实例
文章目录
- @[toc]
- 0. 前言
- 1. 构建ArgumentParser实例
- 2. add_argument方法
- 3. 实例
0. 前言
- 官方文档
- 官方教程:Argparse Tutorial
- 作用:Python的内置命令行工具。
- 使用流程:
- 构建
argparse.ArgumentParser实例。 - 通过调用上述实例的
add_argument方法,添加命令行参数。 - 通过上述实例的
parse_args方法解析参数。
- 构建
1. 构建ArgumentParser实例
- 学习构建实例的本质,就是学习其构造器中每个参数的含义。
prog- 作用:指定程序的名称,可用于
description等其他参数中中,通过%(prog)s来指定。 - 默认值:
sys.argv[0]。
- 作用:指定程序的名称,可用于
usage- 作用:简单描述命令的作用。
- 默认值:
%(prog)s [options...],大概这个形式。
description:命令的详细描述。epilog:帮助文档尾部的信息。parents- 作用:指定父级
ArgumentParser实例列表。可以使用父类定义的参数。 - 注意:由于默认不允许有重复的参数,所以父级的
add_help一般设置为False。
- 作用:指定父级
formatter_class:用于指定帮助文档格式。prefix_chars:- 作用:指定 使用可选参数时 的前置字符。
- 默认值:
-。
fromfile_prefix_chars- 作用:当命令过长时,可以放在文件中,命令行指定文件名时,必须先确定前缀。
- 默认值:空。即不指定文件作为命令的一部分。
argument_default:全局参数默认值,默认为None。conflict_handler:若有参数名冲突时,是否报错。默认会报错。add_help:是否添加-h以及--help。allow_abbrev:- 作用:若没有冲突的情况下,是否允许使用参数名称缩写指定参数。
- 默认值:允许。
2. add_argument方法
nameorflags:- 在
add_argument的最开始的所有位置参数,都是参数名称。 - 有两种形式:
- 位置参数:
'f':前面没有-,必选参数。- 可以定义在可选参数后面,但使用的时候必须在最开始指定。
- 可选参数:
'-f', '--foo',前面有-。- 测试了一下,应该没有限定在一个
-后只能有一个字母,即-foo也是可以的,-foo-foo也是可以的。 - 如果命名为
--foo-foo,则在后续使用时-要转换为下划线_,即变量名为args.foo_foo
- 测试了一下,应该没有限定在一个
- 位置参数:
- 注意:位置参数和可选参数不能同时指定。如
add_argument('a', '-f')是错误的。
- 在
actionstore:默认值,保存参数store_const:保存const中的常量。store_true&store_false:store_const的特殊形式,表示对应的参数是否存在。append:将所有值保存为列表。append_const:将const中的参数保存。version:指定版本,需要再指定一个参数version。help:发音所有帮助信息。count:指定关键字出现的次数。- 例如:
parser.add_argument("-v", "--verbosity", action="count")-v:1-vv:2--verbosity --verbosity:2- 不指定:
None。可通过设置default来避免获得None。
- 例如:
nargs- 指定该参数的参数个数。
- 整数
N,表示至少有多少参数。 ?表示0或1个参数。*0或所有参数。+所有参数,至少一个。
const:指定参数default:指定默认值。type:指定数据类型。choices:参数值必须在某个集合中。required:设置是否必须。help:介绍参数。metavar:帮助文档中的默认参数名。dest:在args中的属性名称。
3. 实例
- 实例一:
def parse_args():
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('-i', `--integer`, type=int, default=0)
parser.add_argument('-s', `--string`, type=str, default="test")
group.add_argument(`--flag`, action="store_true")
group.add_argument(`--float-num`, type=float, default=.5, help="")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
args = parser.parse_args()
- 实例二
# prog.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
parser.add_argument("-v", "--verbosity", action="count", default=0)
args = parser.parse_args()
answer = args.x**args.y
if args.verbosity >= 2:
print("Running '{}'".format(__file__))
if args.verbosity >= 1:
print("{}^{} == ".format(args.x, args.y), end="")
print(answer)
# $ python3 prog.py 4 2
# 16
# $ python3 prog.py 4 2 -v
# 4^2 == 16
# $ python3 prog.py 4 2 -vv
# Running 'prog.py'
# 4^2 == 16
最后
以上就是文艺黑裤最近收集整理的关于Python基础(7) argparse的全部内容,更多相关Python基础(7)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复