📜  argparse 所需参数 - Python (1)

📅  最后修改于: 2023-12-03 15:29:27.970000             🧑  作者: Mango

argparse 所需参数 - Python

在 Python 程序中,我们经常需要从命令行中获取用户输入的参数,以便程序能够根据不同的输入执行不同的操作。在 Python 中,我们可以通过 argparse 模块来实现这个功能。argparse 提供了强大而灵活的工具来解析命令行中的参数,包括可选参数、必需参数,甚至还可以具有互斥关系的参数。

引入 argparse 模块

要使用 argparse,首先需要导入该模块。

import argparse
定义参数
必需参数

要定义必需参数,我们需要先创建一个 ArgumentParser 对象,然后使用 add_argument() 方法来添加参数。必需参数通常是指那些必须提供的参数,否则程序将无法正常执行。例如,下面的代码定义了一个必需的参数 input

parser = argparse.ArgumentParser()
parser.add_argument("input", help="input file to process")

在命令行中,我们可以像下面这样调用程序并提供 input 参数:

$ python myprogram.py myfile.txt

此时程序将读取 myfile.txt 文件并进行处理。

可选参数

可选参数通常是程序中的一些设置选项,用户可以根据自己的需要选择是否提供这些选项。例如,我们希望为程序添加一个可选参数来控制输出等级:

parser.add_argument("-v", "--verbose", help="increase output verbosity", action="store_true")

在命令行中,我们可以通过 -v--verbose 参数来启用该选项:

$ python myprogram.py -v
参数值

对于一些需要额外输入值的参数,例如指定输出文件名,我们可以通过添加 metavar 参数来指定该参数的值。例如:

parser.add_argument("-o", "--output", metavar="output_file", help="specify output file name")

在命令行中,我们可以像下面这样指定输出文件名:

$ python myprogram.py -o myfile.txt

还可以将参数值限制在一定范围内,或者设置默认值等。详细信息可以参考 官方文档

解析参数

在定义参数后,我们需要使用 parse_args() 方法来解析命令行参数。例如:

args = parser.parse_args()

这将返回一个 Namespace 对象,该对象包含了命令行中指定的所有参数及其值。调用方式如下:

input_file = args.input
output_file = args.output
if args.verbose:
    print("verbose mode enabled")
总结

诸如 argparse 这样的 Python 模块为我们提供了非常便利的命令行解析工具,使得程序可以更加灵活和易用。通过学习和使用这些工具,我们可以编写出更加高效和用户友好的 Python 程序。