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. java的一些基本常识

    1.什么是java虚拟机?为什么把java称作是“无关平台的语言”? java虚拟机是一个可以执行Java字节码的虚拟进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java 被设计 ...

  2. Matlab梯度下降及正规方程实现多变量的线性回归

    如果需要代做算法,可以联系我...博客右侧有联系方式. 一.相关概念 1.梯度下降 由于Z= X*theta - y是列向量,所以Z'*Z就是平方和连加,就是2范数:如果Z是矩阵呢,那么Z'*Z的对角 ...

  3. T-SQL语言基础(转载)

    本文转自http://www.cnblogs.com/Jolinson/p/3552786.html 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基 ...

  4. NSPredicate 应用 --数组如何一键去重,如何一行代码筛选,请慢慢看来

    1.去重 NSArray * uniqueVarValueArray= [origArray valueForKeyPath:@"@distinctUnionOfObjects.VarKey ...

  5. Sync 攻击原理及防范技术

    据统计,在所有黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法.相信很多人还记得2000年YAHOO网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN攻击,有些网络蠕虫病毒配合SY ...

  6. 基于pydash临控linux服务器

    pydash项目地址:https://github.com/k3oni/pydash 一.安装过程 1.安装pip dnf install git python-pip -ypip install v ...

  7. Spring配置xml版

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. SpringMVC 文本文件下载的配置

    页面: <fieldset> <legend>Download annotator list</legend> <img src="pages/to ...

  9. 函数传参,改变Div任意属性的值&&图片列表:鼠标移入/移出改变图片透明度

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. Bounded Context

    From http://martinfowler.com/bliki/BoundedContext.html Bounded Context is a central pattern in Domai ...