栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python-argparse详解

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-argparse详解

文章目录
  • 1.引言
  • 2.引入argparse模块
  • 3.在pycharm的Terminal中键入
  • 4.输入代码
  • 5.改变输入参数顺序
  • 6.简化help菜单
  • 7. 参数是否出入完整
  • 8.互斥参数

1.引言

我先创建一个简单函数,来计算圆柱体体积。包括两个参数半径radius和高度heigh

import math

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(2,4))#结果为50.26548245743669
2.引入argparse模块

代码如下(示例):

import math
import argparse

# 创建一个解析对象parser
parser = argparse.ArgumentParser(description='Calculate volume of a Cylinder')  #用来装载参数的容器
# description参数可以用于描述脚本的参数作用,默认为空

# 添加命令行参数
parser.add_argument('radius', type=int, help='Radius of Cylinder')  # type=str是默认的
parser.add_argument('height', type=int, help='Height of Cylinder')
args = parser.parse_args()

def cylinder_volume(radius, height):
    vol = (math.pi)*(radius**2)*(height)
    return vol

if __name__ == '__main__':
    print(cylinder_volume(args.radius, args.height))

3.在pycharm的Terminal中键入

4.输入代码
#命令行中输入计算圆柱体体积
python program/argparse_tutorial.py 2 4
#命令行中调用help
python program/argparse_tutorial.py -h
5.改变输入参数顺序
import math
import argparse

parser=argparse.ArgumentParser(description='Calculate volume of a Cylinder')
parser.add_argument('-r','--radius',type=int,help='Radius of Cylinder')#'--'使用选择性参数
parser.add_argument('-H','--height',type=int,help='Height of Cylinder')#用大写的原因是h被help所占
args=parser.parse_args()

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(args.radius,args.height))

使用flags,选择性参数是一件好事

这样就可以改变输入参数的顺序
python program/argparse_tutorial.py -r 2 -H 4

python program/argparse_tutorial.py -H 4 -r 2
6.简化help菜单
# 编写人:孟榕新
# 时间:2022/5/4 21:41
import math
import argparse

parser=argparse.ArgumentParser(description='Calculate volume of a Cylinder')
#使用metavar指向空串
parser.add_argument('-r','--radius',type=int,metavar='',help='Radius of Cylinder')
parser.add_argument('-H','--height',type=int,metavar='',help='Height of Cylinder')
args=parser.parse_args()

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(args.radius,args.height))

7. 参数是否出入完整
import math
import argparse

parser=argparse.ArgumentParser(description='Calculate volume of a Cylinder')
#required='True',使缺参数错误提示更明确
parser.add_argument('-r','--radius',type=int,metavar='',required=True,help='Radius of Cylinder')
parser.add_argument('-H','--height',type=int,metavar='',required=True,help='Height of Cylinder')
args=parser.parse_args()

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(args.radius,args.height))
8.互斥参数

这里我就不写了,可以点一下这个链接如果想要文档可以点击这个

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/866809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号