(一)简单应用
# 计算圆柱体积 argparse_demo.py
import math
import argparse
def cylinder_volume(radius, height):
vol = math.pi * (radius ** 2) * height # math.pi 等于圆周率
return vol
########################################
# 创建一个解析对象parser
parser = argparse.ArgumentParser(description='Calculate volume of a Cylinder')
# 给解析对象添加命令行参数
parser.add_argument('-r', '--radius', type=int, metavar='', required=True, help='Radius of Cylinder') # -和--的作用是使参数可选择。type不指定的话默认是str
parser.add_argument('-H', '--height', type=int, metavar='', required=True, help='Height of Cylinder') # 用大H是因为小h被占用了
# 进行解析
args = parser.parse_args()
if __name__ == '__main__':
print(cylinder_volume(args.radius, args.height))
控制台命令:
1.python argparse_demo.py -h 获取参数使用说明
2.python argparse_demo.py -r 2 -H 4 等同于
python argparse_demo.py -H 4 -r 2 等同于
python argparse_demo.py --radius 2 --height 4
(二)互斥组
# 计算圆柱体积
import math
import argparse
def cylinder_volume(radius, height):
vol = math.pi * (radius ** 2) * height # math.pi 等于圆周率
return vol
########################################
# 创建一个解析对象parser
parser = argparse.ArgumentParser(description='Calculate volume of a Cylinder')
# 给解析对象添加命令行参数
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') # 用大H是因为小h被占用了
# 添加互斥组
group = parser.add_mutually_exclusive_group()
# 给互斥组添加两个参数
# 意思是给action赋值store_true的时候,程序默认为False。当执行这个命令的时候,默认值就会被激活成True
group.add_argument('-q', '--quiet', action='store_true', help='print quiet')
group.add_argument('-v', '--verbose', action='store_true', help='print verbose')
# 进行解析
args = parser.parse_args()
if __name__ == '__main__':
volume = cylinder_volume(args.radius, args.height)
if args.quiet:
print(volume)
elif args.verbose:
print("Volume of a Cylinder with radius {} and height {} is {}".format(args.radius, args.height, volume))
else:
print("Volume of Cylinder = {}".format(volume))
1.python argparse_demo.py -r 2 -H 4 -q
2.python argparse_demo.py -r 2 -H 4 -v
3.python argparse_demo.py -r 2 -H 4 不使用互斥组参数
4.python argparse_demo.py -r 2 -H 4 -q -v 互斥组参数不能同时使用
学习视频链接: https://www.bilibili.com/video/BV1U4411j7xb