使用argparse
简单的例子
我们先来看一个简单的例子。 主要有三个步骤:
创建ArgumentParser ()对象
通过调用add_argument ()方法添加参数
使用parse_args (分析添加的参数
示例:
---编码: utf-8---- importargparse
parser=argparse.ArgumentParser (
parser.add_argument('integer ',type=int,help='display an integer ' ) )
args=parser.parse_args (
打印(args.integer )。
将上面的代码另存为argparse_usage.py文件,然后在终端上运行,如下所示:
$ python argparse_usage.py
usage : arg parse _ usage.py [-h ] integer
arg parse _ usage.py : error : toofewarguments
$ python argparse_usage.py abcd
usage : arg parse _ usage.py [-h ] integer
arg parse _ usage.py : error : argument integer : invalid intvalue : ' ABCD ' $ pythonargparse _ u u usage.py-h
usage : arg parse _ usage.py [-h ] integer
定位协议:
integer display an integer
可选协议:-- helpshowthishelpmessageandexit
$ python argparse_usage.py10
10
定位参数
上例说明了定位参数的实际使用。 再来看看另一个例子。 计算数的平方。
---编码: utf-8---- importargparse
parser=argparse.ArgumentParser (
parser.add_argument('square ',help=' displayasquareofagivennumber ',type=int ) )。
args=parser.parse_args (
打印(rgs.square * *2) )。
将上面的代码另存为argparse_usage.py文件,然后在终端上运行,如下所示:
$ python argparse_usage.py 9
81
可选参数
让我们来看看选购件参数的使用方法。 可选参数意味着命令行参数是可选的。 别胡说,让我们来看看下面的例子。
---编码: utf-8---- importargparse
parser=argparse.ArgumentParser (
parser.add_argument('--square ',help=' displayasquareofagivennumber ',type=int )。
parser.add_argument('--cubic ',help=' displayacubicofagivennumber ',type=int )。
args=parser.parse _ args (if args.square :
print(Args.square**2) ifargs.cubic:
打印(args.cubic * *3) ) )。
将上面的代码另存为argparse_usage.py文件,然后在终端上运行,如下所示:
$ python argparse_usage.py --h
usage 3360 arg parse _ usage.py [-h ] [-- square square ] [-- cubic cubic ]
可选协议:-- helpshowthishelpmessageandexit-- squaresquaredisplayasquareofagivennumber-- cubicubicdisplayagivennumber
$ pythonargparse _ usage.py-- square 8
64 $ pythonargparse _ usage.py-- cubic 8
512 $ pythonargparse _ usage.py8 usage : arg parse _ usage.py [-h ] [-- square square ] [-- cubic cubic ]
arg parse _ usage.py : error : unrecognized arguments :8 $ pythonargparse _ usage.py #没有输出
混合使用
定位参数和选购件参数可以混合使用。 查看以下示例,并给出整数序列以输出它们的和或最大值(缺省)。
导入警报
parser=arg parse.argument parser (描述=' processsomeintegers.' )
parser.add_argument('integers ',metavar='N ',type=int,nargs=' ',
help=' anintegerfortheaccumulator ' )
parser.add_argument('--sum ',dest='accumulate ',action='store_const ',const=sum,default=max,
help=' sumtheintegers (默认: find the max ) )
args=parser.parse_args (
打印(args.accumulate (args.integers ) )
结果:
$ python argparse_usage.py
usage 3360 arg parse _ usage.py [-h ] [-- sum ] n [ n . ]
arg parse _ usage.py : error : toofewarguments
$ python argparse_usage.py1 2 3 4
4 $ pythonargparse _ usage.py 1234-- sum 10
add_argument ()方法
add_argument (方法定义如何解析命令行参数。
argument parser.add _ argument (nameorflags . [,action][,nargs][,const][,default][,type][,choices][
每个参数解释为:
可选字符串的名称或列表,如nameorflags--foo和-f,--foo。
action -在命令行中检测到参数时的行为。 默认值为store。
store_const,表示赋值为const;
append,将检测到的值保存为列表。 也就是说,参数重复时会保存多个值。
append_const,用于将参数规范中定义的值保存到列表中;
计数,存储遭遇次数; 也可以继承argparse.Action自定义参数分析;
nargs -要读取的命令行参数的数量。 既可以是具体数字,也可以是? 如果未指定编号、值,则位置协议为default,选项协议为const; 或者,表示0或多个参数的*标记; 或者,编号表示一个或多个参数。
常数和nargs所需的常数值。
default -未指定参数时的缺省值。
type -命令行参数要转换的类型。
choices -参数允许值的容器。
required -是否可以省略可选参数(仅限可选参数)。
帮助-参数的帮助信息。 如果指定了argparse.SUPPRESS,则不显示该参数的帮助信息。
metavar-usage说明中的参数名称。 对于必需参数,默认为参数名称;对于可选参数,默认为大写参数名称。
dest -分析后的参数名称。 缺省情况下,[ prod 84 ]为可选参数选择最长的名称,并将中间划线转换为下划线。