欢迎访问宙启技术站
智能推送

使用Python创建灵活的命令行菜单(CLI)

发布时间:2023-12-27 12:10:54

在Python中,我们可以使用argparse模块来创建灵活的命令行菜单(CLI)。argparse是Python的内置模块,它用于解析命令行参数并生成有用的帮助信息。

以下是一个简单的例子,演示如何使用argparse创建一个命令行菜单。假设我们要创建一个名为calculator的命令行工具,它可以执行简单的数学运算。

import argparse

def add(args):
    result = args.num1 + args.num2
    print(f"{args.num1} + {args.num2} = {result}")

def subtract(args):
    result = args.num1 - args.num2
    print(f"{args.num1} - {args.num2} = {result}")

def multiply(args):
    result = args.num1 * args.num2
    print(f"{args.num1} * {args.num2} = {result}")

def divide(args):
    result = args.num1 / args.num2
    print(f"{args.num1} / {args.num2} = {result}")

# 创建解析器
parser = argparse.ArgumentParser(description="A simple calculator")

# 添加位置参数
parser.add_argument("operation", choices=["add", "subtract", "multiply", "divide"], help="operation to perform")
parser.add_argument("num1", type=int, help="first number")
parser.add_argument("num2", type=int, help="second number")

# 解析命令行参数
args = parser.parse_args()

# 根据操作调用相应的函数
if args.operation == "add":
    add(args)
elif args.operation == "subtract":
    subtract(args)
elif args.operation == "multiply":
    multiply(args)
elif args.operation == "divide":
    divide(args)

在上述示例中,我们首先导入了argparse模块,然后定义了四个函数addsubtractmultiplydivide,每个函数根据输入的参数执行相应的数学运算,并将结果打印出来。

接下来,我们创建了一个解析器对象parser,并使用add_argument方法添加了三个位置参数:operationnum1num2。注意choices参数用于限定operation参数的取值范围。我们还指定了每个参数的类型和帮助信息。

然后,我们通过调用parse_args方法解析命令行参数,并将结果存储在args对象中。

最后,根据args.operation的值,我们调用相应的函数执行相应的操作。

现在,我们可以在命令行中执行以下命令来使用这个命令行菜单:

python calculator.py add 2 3
python calculator.py subtract 5 2
python calculator.py multiply 4 6
python calculator.py divide 10 2

输出结果将会是:

2 + 3 = 5
5 - 2 = 3
4 * 6 = 24
10 / 2 = 5.0

通过这个例子,我们可以看到使用argparse模块创建一个灵活的命令行菜单是非常简单的。我们只需定义参数、解析参数并执行相应的操作即可。同时,argparse提供了丰富的功能,可以处理各种复杂的命令行参数情况,使我们的命令行工具更加强大和易于使用。