Python命令行解析argparse常用用法
#!/usr/bin/python
#-*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser(description="calculate X to the power of Y, example for argparse.")
# 常规的字符串参数
parser.add_argument("-g", "--general", help = "test for general string argument")
# 字符串默认取值,(action也可以不指定,action默认就是store)
parser.add_argument("-d", "--default", action="store", help="test for default", default="default")
# 必须指定包含的参数
parser.add_argument("-m", "--must", required=True)
# 必须从选项中选择的参数
parser.add_argument("-l", "--level", type=int, choices=[0, 1, 2], help="level: test for choices")
# 通过指定或者不指定-s来确定是否显示
parser.add_argument("-s", "--show", help="show the windows", action="store_true")
# 位置参数
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
# 定义组中只能有一个选项出现。
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument("-v", "--verbose", action="store_true", help="verbose: test for mutually")
group.add_argument("-q", "--quiet", action="store_true", help="quit: test for mutually")
# 参数解析
args = parser.parse_args()
if args.general:
print('general is {}'.format(args.general))
if args.default:
print("default value is {}".format(args.default))
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))