• 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)
    
  • 相关阅读:
    洛谷P1446/BZOJ1004 Cards Burnside引理+01背包
    HDU-4676 Sum Of Gcd 莫队+欧拉函数
    HDU-5378 概率DP
    HDU-5628 Clarke and math-狄利克雷卷积+快速幂
    容斥原理+补集转化+MinMax容斥
    2019牛客暑期多校训练营(第九场)A.The power of Fibonacci
    斐波那契额数列的性质
    莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记
    广义Fibonacci数列找循环节 学习笔记
    苗条的生成树 Slim Span--洛谷
  • 原文地址:https://www.cnblogs.com/qq1207501666/p/13175011.html
Copyright © 2020-2023  润新知