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模块-解析命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

Python 命令行参数解析: optparse 模块

Perl模块 Getopt::Long 解析

python optparse命令解析模块

python命令行解析模块--argparse

python:argparse命令行解析模块详解

Argparse 命令行解析模块常用参数