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. ORACLE查询当前连接的用户信息及操作的SQL语句

    ORACLE--查询当前连接的用户信息及操作的SQL语句    select sid,      status,      v$session.username 用户名,      last_call ...

  2. Akka Cluster之集群分片

    一.介绍  当您需要在集群中的多个节点之间分配Actor,并希望能够使用其逻辑标识符与它们进行交互时,集群分片是非常有用的.你无需关心Actor在集群中的物理位置,因为这可能也会随着时间的推移而发生变 ...

  3. 博客 | 基于Travis CI实现Hexo在Github和Coding的同步自动化部署

    文章目录 完成Hexo主题安装和配置 基于Travis CI实现同步部署 参考内容 相关链接 待补充 完成Hexo主题安装和配置 如果您还没有安装Hexo环境,请参考Hexo文档安装,也给出这样两篇博 ...

  4. IE8兼容性问题

    由于业务的需要,我们竟然还要支持IE8,听着就让人很心酸呀.不过在进行适配的过程中,会发现还是有一定规律的,基本上帮相关问题改了,页面也就能正常显示了.下面就总结下对IE8适配过程中所进行的修改. 1 ...

  5. axure产品原型图,元件库导入方法

    axure是公司产品经理常用的软件,用来绘制产品原型图. 为了画出漂亮的原型图,需要各色各样的元件.因此导入各类元件库很有用处: 打开元件库视图: 载入元件库,选择事先下载好的元件 元件库下载:htt ...

  6. python之生成excel

    #_*_coding:utf-8_*_ import MySQLdb import xlwt from datetime import datetime def get_data(sql): # 创建 ...

  7. 资源的GPUAddress

    BufferAddress CommandHandle TextureHandle 给shader采样的 ImageHandle 给shader  load store的.../imageLoad() ...

  8. ElasticSearch5.5.2常用命令

    1.启动 转到elasticsearch-5.5.2\bin目录: 打开命令行输入:elasticsearch 2.ELasticsearch集群已经启动并且正常运行 curl http://127. ...

  9. 解决no declaration can be found for element 'context:component-scan'

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

  10. 质量平台建设之Mock平台

    转载:http://blog.csdn.net/spark2008/article/details/51372913 基于目前系统越来越多,在项目开发过程中,减少各模块之间的开发依赖,另保证各个系统模 ...