argparse 模块是 Python 标准库中提供的一个 命令行解析模块,它可以让使用者以类似 Unix/Linux 命令参数的方式输入参数(在终端以命令行的方式指定参数),argparse 会自动将命令行指定的参数解析为 Python 变量,从而让使用者更加快捷的处理参数。
(1)导入argparse模块,并创建ArgumentParser 对象
import argparse
#创建解释器
parser = argparse.ArgumentParser(description="这里是一段描述文字")
description 可写可不写,如果写的话,当用户没有正确使用命令行参数时,比如遗漏了必需的参数,argparse会显示错误信息,并且 description 指定的描述信息 也会被包括在错误信息中,一并被打印出来
(2) 添加所需参数
# 例1
parser.add_argument("-gf", "--girlfriend",choices=['jingjing','lihuan'])
-gf 参数名缩写,在命令行输入-gf和--girlfriend 的效果是一样的; --girlfriend 完整的参数名称,需要注意的是,在解析后,想要调用该参数,只能使用完整的参数名称 args.girlfriend,使用args.gf 则会报错; choices 表示参数值只能是这个choices里面的内容,其他内容则会保错。
# 例2
parser.add_argument('food')
不带"--"的,该种方式则要求: 必须给该参数指定参数值,不指定的话会报错 输入该参数不需要指定参数名称,解释器会自动将输入的参数赋值给food,指定名称的话,反而会报错。
# 例3
parser.add_argument('--house',type=int,default=0)
type 代表输入参数的类型,从命令行输入的参数,默认是字符串类型,参数 type 常用值有:int、float、str、bool defaut 如果不指定该参数的值,则会使用该默认值O
# 例4
parser.add_argument('--modelname','-m',type=str,required=True,choices=['model_A','model_B'])
required 参数用于指定参数是否必需。如果设置为 True,则在命令行中必须提供该参数,否则将引发异常。
(3)解析参数
# 进行参数解析
args = parser.parse_args()
(4)完整代码举例
import argparse
# 创建解析器对象description="这是一个示例程序"args.name args.name
parser = argparse.ArgumentParser()
# 添加参数
parser.add_argument("-n", "--name", type=str, help="输入你的名字")
parser.add_argument("-a", "--age", type=int, help="输入你的年龄")
# 解析命令行参数
args = parser.parse_args()
# 使用参数
print(f"你好,{args.name},你今年{args.age}岁了。")
(5)命令行传入参数
例如:python (文件名称).py --(参数名称1) (参数值1) --(参数名称2)(参数值2)
(6)关于命令行参数debug