Python3-argparse模块-解析命令行参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3-argparse模块-解析命令行参数相关的知识,希望对你有一定的参考价值。
官方文档
http://python.usyiyi.cn/translate/python_352/library/argparse.html
代码示例
import argparse # 1.获取参数解析对象 parser = argparse.ArgumentParser(description="帮助信息前的一些描述信息,可以不写哦") # 2.添加可解析的参数 # add_argument()函数常用参数 # name or flags 选项字符串的名字或列表,例如foo或者 -f, --foo # nargs 应该读取命令行参数数目,允许的值有 # N(N为数字) 代表必须要有N个参数 # ‘*‘ 代表可以有任意个参数 # ‘?‘ 代表可以有0或1个参数 # ‘+‘ 代表至少要有一个参数 # 如果指定了nargs且值为多个的时候,那么它返回的是一个列表 # default 参数的默认值 # type 命令行参数应该被转换成的类型(默认读取成字符串) # choices 参数可允许的值的一个容器,即有效的参数 # required 参数是否是必须的 # help 参数的简短描述 parser.add_argument("-a", "--app", default=0, type=int, choices=range(1, 10), help="app‘s code") parser.add_argument("first_arg", nargs=3) # 位置参数 parser.add_argument("second_arg") # 位置参数 parser.add_argument("-s", "--student", nargs=2, help="sub need two", required=True) parser.add_argument("-y", action=‘store_true‘) # 选项可以不要参数,有-y就为True,没有则为False # 3.解析参数 # parse_args()会返回一个设计的非常简单的namespace对象 # 当调用parse_args()时,可选的参数将以 - 前缀标识,剩余的参数将被假定为位置参数 # 注意: 位置参数是必须的 namespace = parser.parse_args() # 4.从解析出来的namespace对象中获取参数值 # 注意: # 如果add_argument()中,给予了类似于-a, --app这种参数方式 # 那么在传递的时候可以使用-a 来传递,但解析到namespace对象中的只有app一个属性,即使用namespace.a是识别不出来的 print(namespace) print(namespace.app) print(namespace.y)
以上是关于Python3-argparse模块-解析命令行参数的主要内容,如果未能解决你的问题,请参考以下文章