使用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模块,然后定义了四个函数add、subtract、multiply和divide,每个函数根据输入的参数执行相应的数学运算,并将结果打印出来。
接下来,我们创建了一个解析器对象parser,并使用add_argument方法添加了三个位置参数:operation、num1和num2。注意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提供了丰富的功能,可以处理各种复杂的命令行参数情况,使我们的命令行工具更加强大和易于使用。
