Python argparse 解析命令行参数模块详情
Python argparse 是 Python 核心库中用于解析命令行参数的模块,它可以非常方便地处理命令行参数,提供了丰富的功能和选项。本文将介绍 argparse 模块的用法,让你明白如何在 Python 代码中使用 argparse 来解析命令行参数。
简介
argparse 模块是 Python 核心库中自带的一个模块,它可以轻松地从命令行解析参数和选项。它具有非常强大的功能,可以处理位置参数和可选参数,并且可以生成帮助文档,支持默认值,类型转换等。通过 argparse,我们可以在代码中定义一个命令行界面,并且可以非常灵活地根据需求来使用它。
argparse 的基本用法
argparse 的基本用法包括三个步骤:
- 创建一个 ArgumentParser 对象
- 将要解析的参数和选项添加到 ArgumentParser 对象中
- 调用 parse_args() 方法来解析参数
下面是一个简单的示例,它演示了如何使用 argparse 来解析命令行参数:
import argparse
parser = argparse.ArgumentParser(description='Example')
parser.add_argument('input', help='Input file')
parser.add_argument('-o', '--output', help='Output file')
args = parser.parse_args()
print('Input file: {}'.format(args.input))
print('Output file: {}'.format(args.output))
在这个示例中,首先创建了一个 ArgumentParser 对象,并给它设置了描述信息。然后添加了两个参数,'input' 为位置参数,'-o' 或 '--output' 为可选参数。最后调用 parse_args() 方法解析参数,并且输出参数的值。
现在可以在终端执行这个脚本,例如:
python script.py input.txt -o output.txt
这将会输出:
Input file: input.txt
Output file: output.txt
argparse 支持的参数类型
argparse 支持多种参数类型,例如:字符串、整数、浮点数、布尔值、列表等等。默认情况下,argparse 会将参数解析为字符串。可以使用 type 参数来指定参数的类型。
下面是一个示例,演示如何使用 type 参数来将参数解析为整数:
import argparse
parser = argparse.ArgumentParser(description='Example')
parser.add_argument('number', type=int, help='Input an integer')
args = parser.parse_args()
print('Input number: {}'.format(args.number))
现在可以在终端执行这个脚本,例如:
python script.py 123
这将会输出:
Input number: 123
argparse 支持的参数选项
argparse 支持多种参数选项,例如:短选项、长选项、互斥选项、必选选项、可选选项等等。下面是一些示例,演示了如何在 argparse 中定义和使用这些选项。
短选项
下面的示例演示了如何使用单个字母作为短选项:
import argparse
parser = argparse.ArgumentParser(description='Example')
parser.add_argument('-i', help='Input file')
parser.add_argument('-o', help='Output file')
args = parser.parse_args()
print('Input file: {}'.format(args.i))
print('Output file: {}'.format(args.o))
现在可以在终端执行这个脚本,例如:
python script.py -i input.txt -o output.txt
这将会输出:
Input file: input.txt
Output file: output.txt
长选项
下面的示例演示了如何使用多个字母作为长选项:
import argparse
parser = argparse.ArgumentParser(description='Example')
parser.add_argument('--input', help='Input file')
parser.add_argument('--output', help='Output file')
args = parser.parse_args()
print('Input file: {}'.format(args.input))
print('Output file: {}'.format(args.output))
现在可以在终端执行这个脚本,例如:
python script.py --input input.txt --output output.txt
这将会输出:
Input file: input.txt
Output file: output.txt
互斥选项
下面的示例演示了如何使用互斥选项:
import argparse
parser = argparse.ArgumentParser(description='Example')
group = parser.add_mutually_exclusive_group()
group.add_argument('--yes', action='store_true', help='Say yes')
group.add_argument('--no', action='store_true', help='Say no')
args = parser.parse_args()
if args.yes:
print('Yes')
elif args.no:
print('No')
else:
print('Please say yes or no')
现在可以在终端执行这个脚本,例如:
python script.py --yes
这将会输出:
Yes
必选选项
下面的示例演示了如何使用必选选项:
import argparse
parser = argparse.ArgumentParser(description='Example')
parser.add_argument('input', help='Input file')
parser.add_argument('output', help='Output file')
args = parser.parse_args()
print('Input file: {}'.format(args.input))
print('Output file: {}'.format(args.output))
现在可以在终端执行这个脚本,例如:
python script.py input.txt output.txt
这将会输出:
Input file: input.txt
Output file: output.txt
可选选项
下面的示例演示了如何使用可选选项:
import argparse
parser = argparse.ArgumentParser(description='Example')
parser.add_argument('-i', '--input', default='input.txt', help='Input file')
parser.add_argument('-o', '--output', default='output.txt', help='Output file')
args = parser.parse_args()
print('Input file: {}'.format(args.input))
print('Output file: {}'.format(args.output))
现在可以在终端执行这个脚本,例如:
python script.py
这将会输出:
Input file: input.txt
Output file: output.txt
使用 argparse 自动生成帮助文档
argparse 还支持自动生成帮助文档的功能,只需要给 ArgumentParser 对象设置一个描述信息即可。
import argparse
parser = argparse.ArgumentParser(description='Example')
parser.add_argument('input', help='Input file')
parser.add_argument('-o', '--output', help='Output file')
args = parser.parse_args()
print('Input file: {}'.format(args.input))
print('Output file: {}'.format(args.output))
现在可以在终端执行这个脚本,并使用 -h 或 --help 选项来生成帮助文档,例如:
python script.py -h
这将会输出:
usage: script.py [-h] [-o OUTPUT] input
Example
positional arguments:
input Input file
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
Output file
结论
以上是 Python argparse 解析命令行参数模块的使用攻略,我们可以看到 argparse 的用法非常简单和方便,可以帮助我们轻松地处理命令行参数。如果你有更复杂的需求,argparse 也提供了很多高级的功能,例如子命令、自定义数据类型等等,可以更灵活地处理各种情况。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python argparse 解析命令行参数模块详情 - Python技术站