argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。
官方文档中讲到的,本文基本都提到了,但只是简要记录,如果需要深入理解,可查看原文。
https://docs.python.org/3/library/argparse.html
使用步骤
import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
args = parser.parse_args()
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,
allow_abbrev=True
)
add_argument()方法
ArgumentParser.add_argument(
name or flags...
[, action]
store(默认) 存储参数值
store_const 使用该字符串选项时,取用const值
store_true 使用该字符串选项时,参数值置为True
store_false 使用该字符串选项时,参数值置为False
append 同一个命令行中多次使用该字符串选项时,以追加的方式将值添加到list中
append_const 将多个字符串选项的const值合并到一个list
count 统计选项出现的次数 (如:"-vvv",则最终值为3)
help parser默认会添加一个help action。(一般不用理会)
version 打印版本信息
也可以自定义action类
[, nargs]
数值 指明参数个数
? 提供了参数则取参数值;
无参数但声明了选项字符串则取const值;
无参数也未声明选择字符串则取default值
* 所有参数存入list
+ 与*类似,但参数个数不能为空
argparse.REMAINDER 原封不动的记录参数到list中,通常用于将这些参数传递到其它的命令行工具。
[, const]
1、当action="store_const"或者"append_const"时需要设置
2、当选项为(-f/--foo),nargs='?',同时未提供具体参数时,取用该值。
[, default]
[, type]
[, choices]
[, required]
[, help]
[, metavar]
[, dest]
)
自定义action
class argparse.Action(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)
parse_args()方法
args = parse.parse_args()
args = parser.parse_args(['1', '2', '3', '4'])
parser.parse_args(args=['--foo', 'BAR'], namespace=custom_class99)
例子讲解
下面我们通过一个例子来进行讲解说明
我们可以看到上面的第二个步骤,parser = argparse.ArgumentParser()
它的作用就是:当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时,会打印这些描述信息,一般只需要传递description参数。
下面会有例子输出,首先给出代码:
import argparse
def parse_args():
"""
:return:进行参数的解析
"""
description = "you should add those parameter"
parser = argparse.ArgumentParser(description=description)
help = "The path of address"
parser.add_argument('--addresses',help = help)
args = parser.parse_args()
return args
if __name__ == '__main__':
args = parse_args()
print(args.addresses)
上面四个步骤已经分别对应上了,当我们在命令行敲入:
python arg.py -h
输出提示为:
如何获得命令参数值
我们可以直接通过args.addresses获得它的参数值。
当我们敲入python arg.py --addresses this-is-parameter-of-addresses 命令时
会输出this-is-parameter-of-addresses
参考链接:
https://link.zhihu.com/?target=http%3A//blog.xiayf.cn/2013/03/30/argparse/
https://docs.python.org/3/library/argparse.html#module-argparse (官网链接)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)