本文转载至 https://blog.youkuaiyun.com/github_36326955/article/details/82682521
argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。最常用的有:
- ArgumentParser()
- add_argument()
- parse_args()
这里的参数包括两种,一种是定位参数”positional arguments”,又叫做必须 参数,一种是可选参数”optional arguments”。
1.添加定位参数
#定位参数没有前面的"--",可选参数前面有"--"。
parser.add_argument('integers', metavar='int', nargs='+',
type=int,help='an integer to be summed')#参数 10 5
#python ForArgumentParser.py -h #可以使用-h查看
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('your_positional_arguments', type=int, help='display an integer')
args = parser.parse_args()
print(args.your_positional_arguments)#输出方式
请注意:argparse如果不指定类型”type”,则默认为字符串
2.添加可选参数
可选参数前面有"--"。
parser.add_argument('--log', default=sys.stdout,
type=argparse.FileType('w'), help='the file where the sum should be written')
3.混合使用
import argparse
import sys
parser = argparse.ArgumentParser(description='sum the integers at the command line')# 命令项选项与参数解析的模块
parser.add_argument('integers', metavar='int', nargs='+', type=int,help='an integer to be summed')#参数 10 5
parser.add_argument('--log', default=sys.stdout, type=argparse.FileType('w'), help='the file where the sum should be written')#--log 1.txt
args = parser.parse_args()#得到参数
print(args)#打印命令行参数
args.log.write('%s' % sum(args.integers))#计算
args.log.close()
4.更多的关于添加参数:add_argument()
ArgumentParser.add_argument(name or flags...
[, action]
[, nargs]
[, const]
[, default]
[, type]
[, choices]
[, required]
[, help]
[, metavar]
[, dest])
4.1 name or flags
这里写参数的名字,有的时候我们希望可选参数可以是多个名字,如-h,和–help。 这个时候我们就可以写
parser.add_argument("-v", "--verbosity",type=int help="increase output verbosity")
这样在命令行中使用-v 和 --verbosity 是一样的。
除了name or flags参数是必须之外,add_argument的其他参数都是可选参数。
4.2 action
只需要写 $ python argparetest --verbosity,而不去传一个值
parser.add_argument("--verbose", help="increase output verbosity",
action="store_true")
$ python argparetest --verbosity
这里使用的action=“store_true” 意思是说,如果你在命令行中使用了这个参数,我就把这个参数设置为True,否则这个参数为False.
4.3 choices
参数可允许的值的一个容器。有的时候,我们希望可选参数的值从给定的几个值中选择,例如,我可能只希望你输入0,1,2.如果你输入了3,或者其他值我不接受。这个时候可以用choices指定接受值。例如
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2],
help="increase output verbosity")
4.4 nargs
应该读取的命令行参数个数,可以是: 整数,”?”号,”*” 号,”+” 号, argparse.REMAINDER
4.5 其他比较简单的参数
- default: 用add_argument()添加参数时指定的默认值
- type: 命令行参数应该被转换成的类型。
- required: 可选参数是否可以省略 (仅针对可选参数)。True or False
- help: 参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息.
- dest: 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.
- store_const: 表示赋值为const;
- append: 将遇到的值存储成列表,也就是如果参数重复则会保存多个值;
- append_const: 将参数规范中定义的一个值保存到一个列表;
- count: 存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;
作者:相国大人
来源:优快云
原文:https://blog.youkuaiyun.com/github_36326955/article/details/82682521
版权声明:本文为博主原创文章,转载请附上博文链接!