QingfengLee
7/8/2018 - 3:46 PM

命令行解析argparse常用用法

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