前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python argparse(参数解析

python argparse(参数解析

作者头像
py3study
发布2020-01-17 13:10:03
1.1K0
发布2020-01-17 13:10:03
举报
文章被收录于专栏:python3python3

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

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" ) ====>互斥组内的参数不可同时出现,否则抛异常

代码实例:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档