argparse模块是 python 命令行参数解析模块
import argparse
parse = argparse.ArgumentParser() #创建一个 ArgumentParser 对象,将会保存所有将命令行参数转化为 python 数据类型的必需信息
parse.add_argument() #添加参数
parse.parse_args() #解析添加的参数
位置参数:
import argparse
parse = argparse.ArgumentParser()
parse.add_argument("echo",help="echo the string you use here")
args = parse.parse_args()
print args.echo
添加一个位置参数 echo,如下运行结果,打印出 echo 参数,add_argument 中的 help 为参数的解释部分,当使用 -h/--help的时候可以看到对这个参数的解释,argparse 视传入的命令行参数为 strings,可以在 add_argument( type=int )修改
$ python prog.py foo
foo
可选参数:
即可以选择的参数
import argparse
parse = argparse.ArgumentParser()
parse.add_argument("-v","--verbose")
args = parse.parse_args()
if args.verbose:
print "verbose turned on"
运行参数的时候,如果不指定 verbose 参数也是对的,这时 args.verbose 是 None,当使用可选参数的时候,后面一定要指定一个值。-v 是缩写
$ python prog.py --verbosity 1
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
$ python prog.py
usage: prog.py [-h] [-v] square
prog.py: error: the following arguments are required: square
$ python prog.py 4
16
$ python prog.py 4 --verbose
the square of 4 equals 16
$ python prog.py --verbose 4
the square of 4 equals 16
python 中默认的 sys.arg[] 会自动保存运行 python 的参数,如果就一个参数那么保存在 sys.arg[1] 中,多的依次类推
add_argument()常用的参数:
dest:如果提供dest,例如dest="a",那么可以通过args.a访问该参数
default:设置参数的默认值
action:参数出发的动作
store:保存参数,默认
store_const:保存一个被定义为参数规格一部分的值(常量),而不是一个来自参数解析而来的值。
store_ture/store_false:保存相应的布尔值
append:将值保存在一个列表中。
append_const:将一个定义在参数规格中的值(常量)保存在一个列表中。
count:参数出现的次数
parser.add_argument("-v", "--verbosity", action="count", default=0, help="increase output verbosity")
version:打印程序版本信息
type:把从命令行输入的结果转成设置的类型
choice:允许的参数值
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2], help="increase output verbosity")
help:参数命令的介绍