Python—Argparse
argparse 是 python 用于解析命令行参数和选项的标准模块,用于代替已经过时的optaparse模块。argparse模块的作用是用来解析命令行参数。
使用步骤
首先导入该模块
创建一个解析对象
import argparse
parser = argparse.ArgumentParser()
在该对象中添加你需要的命令行参数,和选项
parser.add_argument("--square", type=int, help = "display a square of a given number")
# parser.add_argument("-v", "--verbosity", type=int, choices=[0,1,2], help="increase output verbosity")
parser.add_argument("-v", "--verbosity", action="count", default = 0, help="increase output verbosity")
每一个add_argument()对应一个你要关注的参数或选项;
最后调用parse_args()方法进行解析
args = parser.parse_args()
举例1:
默认情况下,有一个help的命令
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
输出结果:
添加响应的指令行选项:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("Haha", help = "echo the string you use here")
args = parser.parse_args()
print(args.Haha)
结果如下,回显你写下的内容。
举例2:
计算平方,并且选择表现形式
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--square", type=int, help = "display a square of a given number")
parser.add_argument("-v", "--verbosity", action="count", default = 0, help="increase output verbosity")
args = parser.parse_args()
ans = args.square**2
if args.verbosity >= 2:
print(f"the square of {args.square} equals {ans}")
elif args.verbosity >= 1:
print(f"{args.square}^2 == {ans}")
else:
print(ans)
注意这个action,可选 count 判断参数个数,(注意,此处还使用了default,来保证若不输入值则默认为0)
运行后得到结果为:
action里还可以选用其他不同的属性值。
也可以不用action,使用choices,例如choices=[0,1,2]