"""
argparse模块使得写用户友好性命令行接口很容易,程序定义所需要的参数,argparse会从ays.argv中提取出这些参数。argparse模块也能自动的产生帮助和用法信息,并且可以报告用户
的无效参数错误
sys.argv[0]表示程序所在路径
ays.argv[1:]表示命令行的所有参数,是string的列表
"""
import argparse parser = argparse.ArgumentParser(description = "Process some integers") parser.add_argument("integers",metavar="N", type = int, nargs = '+', help = "an integer for the accumulator") parser.add_argument('--sum',dest ='accumulate',action='store_const',const = sum,default = max, help = 'sum the integer(default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))
运行结果:
zhuh@baojp-24000649:~$ python3 arg1.py -h usage: arg1.py [-h] [--sum] N [N ...] Process some integers positional arguments: N an integer for the accumulator optional arguments: -h, --help show this help message and exit --sum sum the integer(default: find the max) zhuh@baojp-24000649:~$ python3 arg1.py 1 2 3 4 4 zhuh@baojp-24000649:~$ python3 arg1.py 1 2 3 4 --sum 10
1. Create parser
使用argparse的第一步是创建一个ArgumentParser的对象:
parser = argparse.ArgumentParser(description = "The description for the program")
ArgumentParser对象会保存所有从命令行提取python数据类型所必须的所有信息。
2.Adding arguments
用程序所需要参数的信息填充ArgumentParser对象的过程是通过调用add_argument()函数完成。
parser.add_argument("integers",metavar="N", type = int, nargs = '+', help = "an integer for the accumulator") parser.add_argument('--sum',dest ='accumulate',action='store_const',const = sum,default = max, help = 'sum the integer(default: find the max)')
之后,调用函数parse_args()会返回两个属性(attribute),intergers和accumulate。intergers是含有一个或者多个整数的list,accumulate是sum()或者max()函数。
3.Parsing arguments
parse_args()函数会检查命令行,把每一个参数转换成正确的类型并且调用正确的action。
4.class argparse.
ArgumentParser
class argparse.
ArgumentParser
(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True)¶
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:参数命令的介绍
参考:python文档