一个命令基本上有这几中呈现方式,单独一个命令,命令后面带一个位置参数或者命令后面带一个可选的参数或者是位置参数和可选参数的组合。每个命令会带一个默认的可选参数–help(-h),来显示帮助文档。
argparse就是用来解析命令,根据命令的参数来得到相应的结果。
argparse使用:
添加位置参数:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
type=int)
args = parser.parse_args()
print args.square*2
执行 python test.py 4
运行结果:
8
添加可选的参数:
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"
注释:action=”store_true” 表示如果制定了verbose, 那么args.verbose的值为True,否值为False
添加短的可选参数:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity",
action="store_true")
args = parser.parse_args()
if args.verbose:
print "verbosity turned on"
位置参数和可选的参数混合出现:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
help="display a square of a given number")
parser.add_argument("-v", "--verbose", action="store_true",
help="increase output verbosity")
args = parser.parse_args()
answer = args.square**2
if args.verbose:
print "the square of {} equals {}".format(args.square, answer)
else:
print answer
备注:
1. 如果只有一个位置参数,执行结果与位置参数和可选参数的顺序没关系;如果存在多个位置参数,那么位置参数之间是有顺序的
2. 可选参数之间是无序的