zoukankan      html  css  js  c++  java
  • Python-argparse模块-获取命令行参数

    #!/usr/bin/python3
    """
        Author   : Jet Bi
        License  : www.cyeap.com
        Summary  : 获取命令行的参数
        Notes    : 在Linux系统上写脚本时,会有给脚本传参的需求,可以通过argparse模块来获取传递的参数的值
    """
    
    # 导入argparse模块
    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             参数的简短描述
    #     action           值可选 store_true 或 store_false
    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)
    
  • 相关阅读:
    佛教:禅宗和净土--佛教的归途
    佛教:从精英到世俗
    佛教:神迹的演变。
    收藏品:MP3播放器
    淘书百胜楼
    Spring注解是如何生效的?
    logstash6.8.3 导入 CSV 文件到 ElasticSearch
    三个线程交替按顺序打印ABC之条件队列的理解
    谈谈多线程
    ElasticSearch如何更新集群的状态
  • 原文地址:https://www.cnblogs.com/qq1207501666/p/13175011.html
Copyright © 2011-2022 走看看