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

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. oracle 区分大小写遇到的坑

    1. oracle 字段是区分大小写的 ..在navicat 中使用查询 select REMAIN_PRINCIPAl from T_NF_PROJECT;    navicat 默认会把 REMA ...

  2. segmentController

    xml <view class="segmentedControl">     <!-- 循环遍历 -->     <block wx:for=&qu ...

  3. js-function作用域

    你能猜出先弹出什么吗? <!DOCTYPE html> <html lang="en"><head> <meta charset=&quo ...

  4. Android-Java-静态成员变量&成员变量&局部变量(内存图&回收机制)

    静态成员变量(回收机制) StaticDemo 和 MyDemo package android.java.oop13; class MyDemo { /** * 定义一个静态变量 */ public ...

  5. iOS 抓包

    通过tcpdump对iOS进行流量分析(无需越狱 iOS Packet Tracing 将 iOS 设备通过 USB 连接到 Mac 打开 terminal rvictl -s $UDID 运行 tc ...

  6. 字符串拼接时使用StringBuffer还是StringBuilder?

    StringBuffer.StringBuilder和String一样,也用来代表字符串.String类是不可变类,任何对String的改变都 会引发新的String对象的生成:StringBuffe ...

  7. spring框架学习笔记2:配置详解

    简单写一个类做示例: package bean; public class User { private String name; private Integer age; public String ...

  8. Failed to acquire lock on file .lock in /tmp/kafka-logs. A Kafka instance in another process or thread is using this directory.

    1. 问题现象 启动 kafka 时报错:Failed to acquire lock on file .lock in /tmp/kafka-logs. A Kafka instance in an ...

  9. win10 + gtx1060 + cuda8.0 + caffe + vs2013 + Tensorflow + PyTorch

    一. 安装cuda8.0 1)先去官网下载cuda8.0  https://developer.nvidia.com/cuda-toolkit 2)下载完之后进行安装,安装时间有点长,请耐心等待,默认 ...

  10. 批量插入bulkcopy

     public static void InsertBatch<T>(IDbConnection conn, IEnumerable<T> entityList, string ...