argparse 是 Python 内置的用于解析命令行参数的库,它可以帮助开发者创建用户友好的命令行界面,从而方便用户通过命令行向程序传递参数。通过 argparse,你可以定义程序可以接受的命令行参数的类型、数量以及帮助文本等。
下面是 argparse 的基本用法:
#导入argparse模块:
import argparse
#创建ArgumentParser对象:
parser = argparse.ArgumentParser(description='Description of your program')
#添加命令行参数:
parser.add_argument('arg_name', type=str, help='Help text for this argument')
#解析命令行参数:
args = parser.parse_args()
#使用解析得到的参数:
print(args.arg_name)
arg_name: 参数名称,可以通过 args.arg_name 来访问参数的值。
type: 参数的类型,可以是 int、float、str 等。
help: 参数的帮助文本,会在用户请求帮助时显示。
parser.add_argument 是 argparse.ArgumentParser 类的一个方法,用于向解析器添加命令行参数选项。
parser.add_argument(name or flags, action, nargs, const, default, type, choices, required, help, metavar)
name or flags:参数的名称或选项。可以是位置参数的名称(无前缀)或带有前缀 - 或 – 的选项名称。例如,“filename” 是一个位置参数的名称,而 “–output” 是一个选项名称。
action:参数的动作。它指定当命令行中出现该参数时,应该采取什么操作。常用的动作有 “store”(保存值,默认)、“store_const”(保存常量值)、“store_true”(保存 True)、“store_false”(保存 False)、“append”(追加值到列表中)、“append_const”(追加常量到列表中)等。
nargs:参数的数量。它指定该参数接受的值的数量。常用的取值有 None(默认,接受一个值)、‘?’(接受零个或一个值)、‘*’(接受零个或多个值)、‘+’(接受至少一个值)等。
const:常量值。当参数使用 store_const 动作时,该参数指定存储的常量值。
default:默认值。当命令行中没有提供该参数时,使用的默认值。
type:值的类型。指定参数值应该被解析成的数据类型。
choices:值的限制。指定允许的参数值,只有提供的值才会被接受。
required:是否必需。如果设置为 True,则该参数为必需参数,不提供将报错。
help:帮助文本。用于显示该参数的帮助信息,通常是参数的简要描述。
metavar:用于显示帮助信息中参数的名称。
以上参数中,name or flags 、type和 help 是最常用的参数,其他参数根据需要使用。在实际使用时,您可以根据您的命令行参数需求,灵活地选择适合的参数设置。
接下来,让我们通过一个简单的例子来说明 argparse 的用法。假设我们要编写一个简单的计算器程序,能够对两个数进行加、减、乘、除操作。
新建一个名为calculator的pythonfile,输入以下代码:
import argparse
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y
parser = argparse.ArgumentParser(description='Simple calculator')
parser.add_argument('operation', type=str, help='Operation to perform: add, subtract, multiply, divide')
parser.add_argument('num1', type=float, help='First number')
parser.add_argument('num2', type=float, help='Second number')
args = parser.parse_args()
if args.operation == 'add':
result = add(args.num1, args.num2)
elif args.operation == 'subtract':
result = subtract(args.num1, args.num2)
elif args.operation == 'multiply':
result = multiply(args.num1, args.num2)
elif args.operation == 'divide':
result = divide(args.num1, args.num2)
else:
print('Invalid operation')
exit(1)
print('Result:', result)
通过运行该程序,并传递参数,可以执行不同的操作。例如在terminal中运行以下的命令:
python calculator.py add 10 5
输出结果:
Result: 15.0
或:
python calculator.py divide 10 5
输出结果:
Result: 2.0
使用 python calculator.py -h 可以查看帮助文档
python calculator.py -h
显示:
usage: calculator.py [-h] operation num1 num2
Simple calculator
positional arguments:
operation Operation to perform: add, subtract, multiply, divide
num1 First number
num2 Second number
optional arguments:
-h, --help show this help message and exit
如此,用户可以通过命令行传递参数并执行不同的计算操作。