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()

输出结果:

image-20211109162120019

添加响应的指令行选项:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("Haha", help = "echo the string you use here")
args = parser.parse_args()
print(args.Haha)

结果如下,回显你写下的内容。

image-20211109163830064

举例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)

运行后得到结果为:

image-20211109182619709

action里还可以选用其他不同的属性值。

也可以不用action,使用choices,例如choices=[0,1,2]

posted @ 2021-11-09 19:14  Jev_0987  阅读(162)  评论(0编辑  收藏  举报