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)

Argparse 命令行解析模块常用参数的更多相关文章

  1. python命令行解析模块--argparse

    python命令行解析模块--argparse 目录 简介 详解ArgumentParser方法 详解add_argument方法 参考文档: https://www.jianshu.com/p/aa ...

  2. python模块----optparse模块、argparse模块 (命令行解析模块)

    简介 optparse module---自版本3.2以来已弃用:optparse模块已弃用,将不再进一步开发:将继续使用argparse模块进行开发.optparse使用一种更具声明性的命令行解析方 ...

  3. Python 命令行解析模块 —— argparse

    argparse是python标准库里面用来处理命令行参数的库,基本使用步骤如下: 1.import argparse    导入模块 2.parser = argparse.ArgumentPars ...

  4. python命令行解析工具argparse模块【1】

    argpaser是python中很好用的一个命令行解析模块,使用它我们可以很方便的创建用户友好型命令行程序.而且argparse会自动生成帮助信息和错误信息. 一.示例 例如下面的例子,从命令行中获取 ...

  5. 『Argparse』命令行解析

    一.基本用法 Python标准库推荐使用的命令行解析模块argparse 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的optparse.因为argparse是 ...

  6. Python命令行解析argparse常用语法使用简介

    查看原文:http://www.sijitao.net/2000.html python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用argparse这个模块.argp ...

  7. python命令行解析工具argparse模块【3】

    上一节,我们讲解了ArgumentParser对象,这一节我们将学习这个对象的add_argument()方法.         add_argument()方法的定义了如何解析一个命令行参数,每个参 ...

  8. python命令行解析工具argparse模块【2】

    上一节,我们简要的介绍了argparse的用法,接下来几节,将详细讲解其中的参数及用法,这一节我们讲解ArgumentParser对象. argparse.ArgumentParser([descri ...

  9. python实现命令行解析的argparse的使用

    参考https://docs.python.org/3.6/library/argparse.html argparse模块使编写用户友好的命令行界面变得很容易.程序定义了它需要什么参数,argpar ...

随机推荐

  1. Jekyll搭建个人博客-拓展版

    关于Jekyll Jekyll 是一个简单的博客形态的静态站点生产机器.它有一个模版目录,其中包含原始文本格式的文档,通过 Markdown (或者 Textile) 以及 Liquid 转化成一个完 ...

  2. .net / java /安卓des加密互通

    一 . C#.net /// <summary> /// 加密数据 /// </summary> /// <param name="Text"> ...

  3. [置顶] Python+Django 复选框选择多个 提交只能保存单个

    之前,做表单时使用单选方式,今天修改为复选框方式提交. 问题来了:在选择多个后保存,发现竟然只能最后一个选择. print(request.POST)显示只有最后一个 print(str(reques ...

  4. quartz---任务调度小试(多任务)

    quartz---任务调度小试         背景 笔者眼下做的项目"jrkj"首页上的信息都是从redis中读取的,每小时更新一次存入redis中,那么问题来了怎么才干让系统每 ...

  5. 查看HttpSession中存放了哪些值

    今天遇到了一个小问题,就是查看HttpSession中都存放了哪些值.解决办法如下: HttpSession session = request.getSession(); for ( Enumera ...

  6. 2017.4.7 e.toString() 与 e.getMessage()的区别

    我使用的时候,抛出了空指针异常,本来是想将异常信息显示在errorInfo里,却发现没有拿到错误信息. 原因:我用的是getMessage(). 用e.getMessage() 时,返回的是null. ...

  7. dubbo官网和帮助文档

    dubbo官网和帮助文档 https://github.com/apache/incubator-dubbo 内含帮助文档: http://dubbo.apache.org/books/dubbo-d ...

  8. (CF#257)A. Jzzhu and Children

    There are n children in Jzzhu's school. Jzzhu is going to give some candies to them. Let's number al ...

  9. 【Excle数据透视】如何隐藏数据透视表字段的分类汇总

    如下图:是显示数据透视表的分类汇总 那么我们现在想弄成以下这样,不显示分类汇总 如何操作呢? 步骤 单击数据透视表任意单元格→数据透视表工具→设计→分类汇总→不显示分类汇总 ***显示分类汇总*** ...

  10. xml中处理特殊字符和转义字符

    XML 中的特殊字符 > 和 开始标记 > 例如: 5 ]] 如何获得这些HTML内容呢? XmlDocument doc = new XmlDocument(); doc.Load(&q ...