python argparse(参数解析模块)
这是一个参数解析,可以用它快捷的为你的程序生成参数相关功能
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(参数解析模块)的更多相关文章
- python之参数解析模块argparse
2.7之后python不再对optparse模块进行扩展,python标准库推荐使用argparse模块对命令行进行解析. 简单入门 先来看个例子: argparse_test.py: import ...
- python命令行参数解析模块argparse和docopt
http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...
- python命令行解析模块--argparse
python命令行解析模块--argparse 目录 简介 详解ArgumentParser方法 详解add_argument方法 参考文档: https://www.jianshu.com/p/aa ...
- $命令行参数解析模块argparse的用法
argparse是python内置的命令行参数解析模块,可以用来为程序配置功能丰富的命令行参数,方便使用,本文总结一下其基本用法. 测试脚本 把以下脚本存在argtest.py文件中: # codin ...
- Python命令行参数解析模块getopt使用实例
Python命令行参数解析模块getopt使用实例 这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参 ...
- Python命令行参数解析模块argparse
当写一个Python脚本时经常会遇到不同参数不同功能的情况,如何做一个更好看的命令帮助信息以及对命令参数解析呢? 这就需要使用argparse模块 #!/usr/bin/env python # -* ...
- python之命令行参数解析模块argparse
"""argparse模块使得写用户友好性命令行接口很容易,程序定义所需要的参数,argparse会从ays.argv中提取出这些参数.argparse模块也能自动的产生 ...
- Python 命令行解析模块 —— argparse
argparse是python标准库里面用来处理命令行参数的库,基本使用步骤如下: 1.import argparse 导入模块 2.parser = argparse.ArgumentPars ...
- python optparse命令解析模块
来源:http://www.cnblogs.com/pping/p/3989098.html?utm_source=tuicool&utm_medium=referral 来源:http:// ...
随机推荐
- Knockout.js快速学习笔记
原创纯手写快速学习笔记(对官方文档的二手理解),更推荐有时间的话读官方文档 框架简介(Knockout版本:3.4.1 ) Knockout(以下简称KO)是一个MVVM(Model-View-Vie ...
- 最长公共子序列(LCS)最长递增子序列(LIS)
#include<cstring>#include<iostream>#include<stack>#include <algorithm>using ...
- ABP框架系列之四十七:(SignalR-Integration-SignalR-集成)
Introduction Abp.Web.SignalR nuget package makes it easily to use SignalR in ASP.NET Boilerplate bas ...
- Solidity合约记录——(一)如何寻找以太坊真实Solidity源码
在自主学习Solidity智能合约的过程中,第一份入手资料无疑是官方文档.感谢前辈们还能提供出文档的中文翻译,作为我入门的第一手资料:文末附上有用的学习链接{持续更新中} 阅读完基础文档同时上手合约后 ...
- python闭包的详细解析
一.什么是闭包? 如果一个内嵌函数访问外部嵌套函数作用域的变量,并返回这个函数,则这个函数就是闭包 闭包必须满足三个条件: 1. 必须有一个内嵌函数 2. 内嵌函数必须引用外部嵌套函数中的变量 ...
- VP-UML系统建模工具研究
一.基本信息 标题:VP-UML系统建模工具研究 时间:2014 出版源:软件工程师 领域分类:面向对象:CASE:UML:系统建模: 二.研究背景 问题定义:VP-UML系统建模的主要特点 难点:运 ...
- Spring AOP中pointcut expression表达式
Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的. Pointcut可以有下列方式来定义或者通过&am ...
- CentOS6最佳实践
一 安装常用软件 常用目录结构 源文件目录 /application,原包文件及解压文件 如 /application/Python-3.6.0.tgz 软件配置目录 /usr/local/ 如 ...
- 电子技术经典资料汇总:PCB设计篇
电子技术经典资料汇总:PCB设计篇,下面的链接是一个一个的文件下载的,也是压缩包的内容,只不过我把他们给汇总成了一个压缩包,方便大家下载,还有更多电子技术必备基础资料,通信无线类的,C语言篇的,关于电 ...
- linux上面是否有安装redis,redis启动
1.进入/usr/local/src目录,下载redis # cd /usr/local/src# wget http://download.redis.io/releases/redis-4.0.6 ...