Python的argparse模块提供了一种方便的方式来解析命令行参数。在这个攻略中,我们将介绍argparse模块如何通过后台传递参数,并提供两个实例说明。
环境准备
在开始之前,需要确保您的系统中已安装Python(建议版本3.5或更高版本)以及argparse模块。您可以使用以下命令来检查argparse模块是否安装:
python3 -c "import argparse"
如果没有任何输出,则意味着argparse已成功安装,否则,您需要打开终端并使用以下命令安装argparse:
pip3 install argparse
实例1
首先,让我们看一个简单的示例。我们将定义脚本名和参数,并将它们传递到脚本后台中。步骤如下:
- 导入argparse模块
import argparse
- 创建一个ArgumentParser对象并添加脚本参数相关的描述信息
parser = argparse.ArgumentParser(description='Process some integers.')
- 添加脚本参数
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
- 解析参数
args = parser.parse_args()
下面是完整的脚本:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
我们可以执行以下命令来运行脚本:
python3 script.py 1 2 3 4 5
当您运行上面的命令时,您应该会看到输出:
>>>>>>>>>>>>>>>>
15
在这个例子中,我们使用了两个参数,一个位置参数'integers',一个可选参数'--sum'。在运行脚本时,我们传递了5个整数值并标记'--sum',脚本输出这些数字的和。
实例2
下面这个示例是一个稍微复杂的例子,它演示了argparse如何用于处理不同类型的参数。
请阅读下面的代码注释,详细了解每个步骤:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
# 添加命名参数
parser.add_argument('--square', dest='squared_numbers', action='store_true',
help='square the numbers')
# 添加位置参数
parser.add_argument('numbers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
# 添加可选参数
parser.add_argument('--verbose', dest='verbose', action='store_true',
help='enable verbose output')
args = parser.parse_args()
# 假如--square被标记,我们就把每一个给定的数值都平方
if args.squared_numbers:
squared_numbers_list = [ x ** 2 for x in args.numbers ]
args.numbers = squared_numbers_list
result = sum(args.numbers)
# 如果--verbose被标记,我们输出更多的信息
if args.verbose:
print("The following numbers were provided: " + str(args.numbers))
if args.squared_numbers:
print("The squared numbers are: " + str(squared_numbers_list))
print("The sum of the numbers is: " + str(result))
else:
print(result)
当您运行脚本时,您可以看到以下输出:
python3 script.py --square 1 2 3 --verbose
The following numbers were provided: [1, 2, 3]
The squared numbers are: [1, 4, 9]
The sum of the numbers is: 14
在这个例子中,我们使用了三个参数,一个可选参数'--square',一个位置参数'numbers',另一个可选参数'--verbose'。当运行脚本并加上命令行参数时,如果标记了'--square',则所有的给定数字都将平方。如果标记了'--verbose',则会输出更多信息。
在这个例子中,我们向argparse
添加了三个参数:
- 命名参数
--square
,用于指定是否要平方给定的数字; - 位置参数
numbers
,接收一个或多个整数; - 可选参数
--verbose
,用于开启详细的输出模式。
总之,argparse模块非常方便,能够帮助我们轻松解析和处理命令行参数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python argparse模块通过后台传递参数实例 - Python技术站