这是一个参数解析,可以用它快捷的为你的程序生成参数相关功能

import argparse(导入程序参数模块)

# 创建argparse对象,并将产品简要说明加入
show = '程序说明' ===>程序简要说明(字符串),输出help时会显示
p = argparse.ArgumentParser(description=show)

# 创建一个参数,如果参数名称前没有‘-’或‘--’则该参数为必填参数,如果程序运行时不给它赋值则程序将抛出异常(赋值时直接给值即可,不需输参数名,参考ping命令)
p.add_argument('参数名称(-h时会显示)', '--别名(选填,'-参数名称 = --别名')',+各种参数。。。)

# 创建一个‘--’参数,如果参数前有‘--’则为可选参数。在输入‘--参数’后再赋值。
p.add_argument('--参数名称',+各种参数。。。)

# 创建一个‘-’参数,如果参数前有‘-’则为可选参数。在输入‘-参数’后再赋值。注意:如果参数有别名则实际参数值是赋给了别名。
p.add_argument('-参数名称', '--别名(选填,'-参数名称 = --别名')',+各种参数。。。)

add_argument方法参数说明:

help:针对该参数的说明。例:help='this display information'

type:该参数字符类型(str,int,float等),如果输入类型不对则会抛异常。例:type=int

action:当该参数值为"store_true"时表示创建的是一个机关,带该参数时则表示开启该机关(创建的参数(机关)此时的值为True),不带该参数时则表示关闭该机关(创建的参数(机关)此时的值为False)。
(例:p.add_argument('--v',action='store_true') ===>如果带该参数则‘v’的值为true)

choices:限定参数值范围(规定只接收规定列表中的值),值为列表。例:choices=[1,2,3]

default:指定参数默认值。例:default=100

# 获取程序参数的值,args是一个对象,该对象里的若干属性等于参数(提取参数的值:args.参数名称)
args = p.parse_args()

# 创建两个互斥的参数
group = parser . add_mutually_exclusive_group () ======> 创建一个互斥组
group.add_argument ( "-v" , "--verbose" , action = "store_true" ) ====>互斥组内的参数不可同时出现,否则抛异常
group.add_argument ( "-q" , "--quiet" , action = "store_true" ) ====>互斥组内的参数不可同时出现,否则抛异常

代码实例:

import argparse
# 创建参数功能对象
show = '这是一个求长方形面积或长方体体积的程序'
p = argparse.ArgumentParser(description=show) # 创建各个参数
p.add_argument('-x', help='长方形的底边长度', type=int, choices=[1, 2, 3], default=2)
p.add_argument('-z', '--kuan', help='另外一条边长', type=int, choices=[1, 2, 3], default=2)
p.add_argument('-y', '--gao', help='长方体的高度', type=int, choices=[1, 2, 3], default=2) # 创建互斥参数
group = p.add_mutually_exclusive_group()
group.add_argument('-v', action="store_true", help='求长方形面积')
group.add_argument('-vv', action="store_true", help='求长方体体积') # 提取参数的赋值
args = p.parse_args() # 利用参数的值进行计算
if args.v:
  print('长方形面积是%d' % (args.x * args.kuan))
elif args.vv:
  print('长方体体积是%d' % (args.x * args.kuan * args.gao))
else:
  print('请用使用参数表明你要使用的功能!')

程序执行命令:python a.py -x 3 -y 1 -z 2 -vv

python argparse(参数解析模块)的更多相关文章

  1. python之参数解析模块argparse

    2.7之后python不再对optparse模块进行扩展,python标准库推荐使用argparse模块对命令行进行解析. 简单入门 先来看个例子: argparse_test.py: import ...

  2. python命令行参数解析模块argparse和docopt

    http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...

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

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

  4. $命令行参数解析模块argparse的用法

    argparse是python内置的命令行参数解析模块,可以用来为程序配置功能丰富的命令行参数,方便使用,本文总结一下其基本用法. 测试脚本 把以下脚本存在argtest.py文件中: # codin ...

  5. Python命令行参数解析模块getopt使用实例

    Python命令行参数解析模块getopt使用实例 这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参 ...

  6. Python命令行参数解析模块argparse

    当写一个Python脚本时经常会遇到不同参数不同功能的情况,如何做一个更好看的命令帮助信息以及对命令参数解析呢? 这就需要使用argparse模块 #!/usr/bin/env python # -* ...

  7. python之命令行参数解析模块argparse

    """argparse模块使得写用户友好性命令行接口很容易,程序定义所需要的参数,argparse会从ays.argv中提取出这些参数.argparse模块也能自动的产生 ...

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

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

  9. python optparse命令解析模块

    来源:http://www.cnblogs.com/pping/p/3989098.html?utm_source=tuicool&utm_medium=referral 来源:http:// ...

随机推荐

  1. Android手机上浏览器不支持带端口号wss解决方案

    首先抄个示例过来,命名为wss-test.html,然后传到服务器: <!DOCTYPE HTML> <html> <head> <meta http-equ ...

  2. getObjectURL 上传图片预览

    js 函数 function getObjectURL(file) {    var url = null ;     if (window.createObjectURL!=undefined) { ...

  3. http协议基本原理

    HTTP(HyperText Transport Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型 ...

  4. ABP框架系列之二十四:(Email-Sending-EF-电子邮件发送)

    Introduction Email sending is a pretty common task for almost every application. ASP.NET Boilerplate ...

  5. Python开发——3.基本数据类型之列表、元组和字典

    一.列表(list) 1.列表的格式 li = [11,22,"kobe",["lakers","ball",11],(11,22,),{& ...

  6. 使用pyenv在系统中安装多个版本的python

    pyenv的安装与使用 如果没有安装git,首先要安装git apt-get install git 安装完成后,使用自动安装程序提供的单行程进行安装: curl -L https://github. ...

  7. cf 20C Dijkstra?

    带队列  dijkstra #include <iostream> #include <cstdio> #include <queue> #include < ...

  8. maya2012卸载/安装失败/如何彻底卸载清除干净maya2012注册表和文件的方法

    maya2012提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装maya2012失败提示maya2012安装未完成,某些产品无法安装,也有时候想重新安装maya ...

  9. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —9.块存储服务(cinder)部署配置

    块存储服务部署相关块存储服务(cinder)为实例提供块存储.存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的.还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等.典型 ...

  10. firewall 和 iptables 常用命令

    [参考文章]:Centos7 关闭防火墙 [参考文章]:Centos7 firewall防火墙常用配置 CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 ...