python模块 argparse

直接看例子:
例1

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbosity", help="increase output verbosity")
args = parser.parse_args()
if args.verbosity:
    print("verbosity turned on")

第三行创建了一个对象
第四行 add_argument 添加一个参数 “–verbosity” help属性里的内容将在用户使用–help时对此参数给出说明。
第五行 parse_args() 返回一些parser里的数据(比如获得的参数)
if判断是否有参数传入

例2

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbose", help="increase output verbosity",
                    action="store_true")
args = parser.parse_args()
if args.verbose:
    print("verbosity turned on")

与例1不同的地方在于add_argument方法多了一个关键字action,它的值为"store_true"。这表示如果参数中有这个选项,args.verbose的值为真,否则为假。这使得这个选项不是请求一个数值,而是一个存在与否的选项。

parser.add_argument("-v", "--verbosity", action="count",
                    help="increase output verbosity")

“-v”或"–verbosity"出现几次,args.verbosity记为几

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
parser.add_argument("-v", "--verbosity", action="count", default=0)
args = parser.parse_args()
answer = args.x**args.y
if args.verbosity >= 2:
    print("{} to the power {} equals {}".format(args.x, args.y, answer))
elif args.verbosity >= 1:
    print("{}^{} == {}".format(args.x, args.y, answer))
else:
    print(answer)

最后一个例子

import argparse

parser = argparse.ArgumentParser(description="calculate X to the power of Y")
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
args = parser.parse_args()
answer = args.x**args.y

if args.quiet:
    print(answer)
elif args.verbose:
    print("{} to the power {} equals {}".format(args.x, args.y, answer))
else:
    print("{}^{} == {}".format(args.x, args.y, answer))

详细内容请看官方文档
https://docs.python.org/3/howto/argparse.html#id1

猜你喜欢

转载自blog.csdn.net/JSerenity/article/details/83185722