zoukankan      html  css  js  c++  java
  • Argparse 命令行解析模块常用参数

    Argparse模块可以轻松编写用户友好的命令行界面。该程序定义了它需要的参数,argparse 并将找出如何解析这些参数sys.argv。该argparse 模块还会自动生成帮助和用法消息,并在用户给出程序无效参数时发出错误,该模块可以替代sys.argv用法。

    argparse.ArgumentParser 对象参数如下:
        prog: 一般默认不改,使用脚本名称作为该参数值
        usage:该参数是提示脚本用法,定义好后出现在脚本执行 python script.py --help 的下一行
        description: 该参数输入说明信息到--help界面的 可选参数上方
        epilog: 该参数输入说明信息到--help界面的 可选参数 下方
        version: 自定义版本号
    
    add_argument() 方法参数如下:
        name or flags : 一个字符串选项
        help: 提示出现的帮助信息
        type:设置参数的数据类型
        default: 设置参数的默认值
    

      

    #!/usr/bin/env python
    #--* coding: utf-8 -*-
     
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
     
    import argparse
     
    parser = argparse.ArgumentParser(usage="python piltest.py {'-h'|'--help'|'-v'|'--classes'|'--name'}",
                                     description="使用下列参数输出学生信息",
                                     epilog="分类输出学生信息",
                                     version="test: 1.0")
     
    parser.add_argument('-c', '--classes', help='班级名称', default=1, type=int)
    parser.add_argument('-n', '--name', help='学生名字', default='jwh',type=str)
     
    args = parser.parse_args()
     
    student_class = args.classes
    student_name = args.name
    print "该学生姓名为 %s, 在%s 班" %(student_name, student_class)
    

    parse_known_args:方法获取Namespace 和参数列表

    #!/usr/bin/env python
    # --* coding: utf-8 -*-
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    import argparse
    parser = argparse.ArgumentParser(usage="python piltest.py {'-h'|'--help'|'-v'|'--classes'|'--name'}",
                                     description="选项如下:",
                                     epilog="帮助信息到此为止",
                                     version="test: 1.0")
    parser.add_argument('-m', '--mode', help='选择人员{老师或学生}', default='student', type=str)
    args, remaining = parser.parse_known_args()
    print args,remaining
    

    综合实例:

    #!/usr/bin/env python
    # --* coding: utf-8 -*-
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    import argparse
    parser = argparse.ArgumentParser(usage="python piltest.py {'-h'|'--help'|'-v'|'--classes'|'--name'}",
                                     description="选项如下:",
                                     epilog="帮助信息到此为止",
                                     version="test: 1.0")
    parser.add_argument('-m', '--mode', help='选择人员{老师或学生}', default='student', type=str)
    args, remaining = parser.parse_known_args()
    if args.mode.lower() == 'teacher':
        parser.add_argument('-s', '--subject', help='所教科目', default='english', type=str)
        parser.add_argument('-n','--name', help='老师名字',default='derrick',type=str)
        args = parser.parse_args()
        teacher_subject = args.subject
        teacher_name = args.name
        print "%s 老师,所教的科学类目是:%s" %(teacher_name, teacher_subject)
    elif args.mode.lower() == 'student':
        parser.add_argument('-c', '--classes', help='班级名称', default=1, type=int)
        parser.add_argument('-n', '--name', help='学生名字', default='jwh', type=str)
        args = parser.parse_args()
        student_class = args.classes
        student_name = args.name
        print "该学生姓名为 %s, 在%s 班" % (student_name, student_class)
    

  • 相关阅读:
    简单明了的带你理解springboot原理和三大核心注解
    Spring Boot(一):入门篇
    【Mysql优化】聚簇索引与非聚簇索引概念
    Mysql索引原理与优化
    Mysql全文索引的使用
    索引的优缺点,如何创建索引
    184 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
    183 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 03 String常用方法(下)
    182 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 02 String常用方法(上)
    181 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 01 String常用方法简介
  • 原文地址:https://www.cnblogs.com/cpy-devops/p/9287298.html
Copyright © 2011-2022 走看看