通过命令行运行Python脚本时,可以通过ArgumentParser
来高效地接受并解析命令行参数。
流程
新建一个ArgumentParser
类对象,然后来添加若干个参数选项,最后通过parse_args()
方法解析并获得命令行传来的参数。
import argparser
parser = argparser.ArgumentParser()
# 此处省略添加若干个参数选项的详细步骤
# ...
parser.parse_args()
最后通过parser.<argument_name>
来获取传递过来的参数。
添加参数选项
使用add_argument()
来添加参数选项
# 添加位置参数
parser.add_argument("echo", help="echo the string you use here")
parser.add_argument("square", help="display ...", type=int)
# 添加可选参数
parser.add_argument("-v", "--verbosity", help="...", type=int, choices=[0, 1, 2], default=0)
对以上代码做出如下解释:
- 在使用
add_argument
来添加参数选项的时候,首先要指定参数的名字argument_name
这个属性,可选参数有长短两个名称; - 在命令行指定位置参数时直接传值,指定可选参数时,先注明长短名称,然后在后面接值;
help
提示参数的作用,type
规定了参数的取值类型,choices
以列表的形式规定了值域,default
规定了参数的默认值
参数选项组
使用add_mutually_exclusive_group()
来添加相互对立的参数选项组
一个对立的可选参数组在指定参数时,只能任选其一或都不选
# 导入模块和新建ArgumentParser类的过程省略
group = parser.add_mutually_exclusive_group()
group.add_argument("-d", "--down")
group.add_argument("-t", "--top")
# ...
最后获取参数时,仍旧是通过parser.down
和parser.top
.
额外的小插曲
对于可选参数还有一个action
属性,常见的有store_true
和count
两种
# 指定-v可选参数时,-v等于True,否则为False
parser.add_argument("-v", action="store_true")
# 指定-v可选参数时,-v等于v出现的次数
parser.add_argument("-v", action="count")