argparse--- 命令行选项、参数和子命令解析器
使用 argparse
模块编写命令行接口的步骤
- 创建一个解析器;
- 添加参数;
- 解析参数;
创建一个解析器
import argparse
parser = argparse.ArgumentParser()
添加参数
添加位置参数
位置参数的位置顺序由添加的顺序决定,例如下面代码示例中,第一个位置参数为 name
,第二个位置参数为 age
parser = argparse.ArgumentParser("name")
parser = argparse.ArgumentParser("age")
添加可选参数
添加可选参数如下
parser = argparse.ArgumentParser("--name")
parser = argparse.ArgumentParser("--age")
也可以使用短选项的方式添加可选参数,或者将两种方式结合起来
# 使用短选项的方式添加可选参数
parser = argparser.ArgumentParser("-n")
# 两种方式结合的方式
parser = argparser.ArgumentParser("-a", "--age")
解析参数
通过 parser.parse_args()
方法将添加的参数返回
args = parser.parse_args()
name = args.name
age = args.age
相关方法
ArgumentParser 对象
通过 ArgumentParser 类实例化一个 ArgumentParser 对象,用于创建一个命令行解析器。实例化 ArgumentParser 对象的参数全部作为关键字参数传入,常用关键字参数的详细描述如下:
usage
描述程序用途的字符串,默认值:从添加到解析器的参数生成;description
在参数的帮助文档之前显示的文本,默认为空,即不显示;epilog
在参数的帮助文档之后显示的文本,默认为空,即不显示;
使用 python xx.py -h | --help
可以查看上面关键字参数设置的值
示例:
import argparse
# 创建一个解析器
parser = argparse.ArgumentParser()
# 添加一个位置参数
parser.add_argument("name")
# 添加一个关键字参数
parser.add_argument("--age")
# 解析参数
args = parser.parse_args()
传入关键字参数
parser = argparse.ArgumentParser(usage="一个简单的小示例",
description="显示在参数前的示例信息",
epilog="显示在参数后的示例信息")
add_argument() 方法
add_argument()
方法用于添加单个命令行参数,并定义参数如何解析,常用参数的详细描述如下:
name
orflags
位置参数,设置命令行参数的参数名,可以是位置参数或关键字参数;type
将传入命令行的参数进行类型检查和类型转换;默认情况下,解析器会将命令行参数作为字符串读入;choices
对命令行参数进行限制,只允许参数在指定的参数值中选择;help
对参数进行简短描述的字符串;
parse_args() 方法
解析通过命令行传入的参数,并转化为对象,通过 .
运算符访问命令行传入的参数。
args = parser.parse_args()
name = args.name
age = args.age