Python argparse模块

(一)简单应用

# 计算圆柱体积  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

你可能感兴趣的:(Python argparse模块)