argparse是一个Python模块:命令行选项、参数和子命令解析器。
使用方法主要包括三个步骤:
- 创建ArgumentParser()对象
- ArgumentParser对象包含将命令行解析成Python数据类型所需要的全部信息。
parser = argparse.ArgumentParser(description='Process some integers.')
- 调用add_argumet()方法添加参数
parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
name or flags
一个命名或者选项字符串的列表,例如 foo 或者-f 或者 --fooaction
当参数在命令行中出现时使用的动作基本类型nargs
命令行参数应当消耗的数目ArgumentParser
对象通常将一个动作与一个命令行参数关联。nargs
关键字参数将一个动作与不同数目的命令行参数关联在一起。nargs=N
一个选项后可以跟多个参数(action='append'
时,依然是一个选项后跟一个参数,只不过选项可以多次出现),参数的个数必须为N,这些参数会生成一个列表,当nargs=1
时,会生成一个长度为1的列表。narges=?
,如果没有在命令行出现对应的项,则给对应的项赋值为default
。特殊的是,对于可选项,如果命令行中出现了此可选择项,但之后没有跟随赋值参数,则此时给此刻选择项并不是赋值default
的值,而是赋值const
的值nargs=*
,和N
类似,到那时没有规定列表长度narges=+
,和*
类似,但是给对应的项当没有传入参数时,会报error: too few arguments
。
const
被一些action和nargs选择所需求的常数default
当参数未在命令行中出现时使用的值type
命令行参数应当被转换的类型choices
可用的参数的容器requires
此命令行选项是否可省略(仅选项可用)help
一个此选项作用的简明描述metavar
在使用方法消息中使用的参数值实例dest
被添加到paese_args()
所返回对象上的属性名
- 使用parse_args()解析添加的参数
>>> parser.parse_args(['--sum', '7', '-1', '42'])
Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])