官方文档:
https://docs.python.org/zh-cn/3.7/library/argparse.html
https://docs.python.org/zh-cn/3.7/howto/argparse.html
argparse是python推荐的命令行解析模块,在命令行中运行某个python脚本时可以在后面添加参数,然后在python脚本里面通过该模块去接收解析参数,同时也可以限制参数类型。 ps: sys.argv 也可以接收参数
基本案例:
import argparse
# 创建解析对象, description是对其描述
parser = argparse.ArgumentParser(description="测试使用 argparse 库")
# 向parser对象添加你要关注的命令行参数和选项, 这里的两个参数,一个为长参数:--parm1,一个为短参数:-p1
parser.add_argument("--param1", "-p1", type=str)
# 对命令行参数进行解析
args = parser.parse_args()
print(args)
# 输出具体的参数值
print(args.param1)
如果你有多个参数需要通过命令行传给python脚本,则可以多添加几个 add_argument,案例如下
import argparse
# 创建解析对象, description是对其描述
parser = argparse.ArgumentParser(description="测试使用 argparse 库")
# 向parser对象添加你要关注的命令行参数和选项, 这里的两个参数,一个为长参数:--parm1,一个为短参数:-p1
parser.add_argument("--param1", "-p1", type=str)
parser.add_argument("--param2", "-p2", type=int, help="参数2需要输入0~20整数", choices=range(21))
# 参数值为int型,传入多个值时,返回的是一个列表
parser.add_argument("--param3", "-p3", type=int, nargs="+", help="list类型,可以接收1~n个值")
# 对命令行参数进行解析
args = parser.parse_args()
print(args)
# 输出具体的参数值
print(args.param1,"\n", args.param2,"\n", args.param3)
add_argument的部分参数介绍如下:
type: 指定类型 required: 参数是否必填,如果为True则必须要传入对应的值 help: python test.py -h 会出现对应help的内容 nargs: 指定这个参数后面的值有多少个,默认为1, 也可以写正则的符号:+ , * , 数字 choices: 设置参数的范围
上面案例的运行结果如下
这里,可以通过 --param1 来指定参数1, 也可以使用短参 -p1来指定参数1
上面案例,我在 --param3 后面写了多个值,因为我在add_argument中添加了参数 nargs ,可以匹配1到多个参数,返回的是个列表
如果参数不满足条件的话会提示报错,如下图所示:
如果要看帮助信息的话,直接输入 -h 或者 --help
暂时就这样吧。。。