argparse 是 Python 的标准库之一,用于编写用户友好的命令行接口。它提供了一种方式来定义您希望从命令行接受什么参数,以及如何处理这些参数。使用 argparse可以轻松地解析命令行参数,并将其值转换为适当的 Python 数据类型。
首先,您需要创建一个 ArgumentParser 对象。这个对象将包含您所有的命令行选项和参数。
import argparse
parser = argparse.ArgumentParser(description='这是一个示例程序')
使用 add_argument 方法向解析器添加参数。例如,要添加一个名为 --input 的位置参数:
parser.add_argument('--input', type=str, help='输入文件路径')
使用解析器对象的 parse_args 方法来解析命令行参数。这会返回一个命名空间,其中包含了所有命令行参数的值。
args = parser.parse_args()
print(args.input) # 输出:输入文件的路径(如果提供了的话)
argparse 支持多种参数类型,如 str, int, float, bool 等。
(1)字符
parser.add_argument('--input', type=str, help='输入文件路径')
(2)整型/浮点数
parser.add_argument('--input', type=int/float, help='输入文件路径')
(3)布尔值
parser.add_argument('--input', action="store_true", help='输入文件路径')
可以使用 default 参数为参数设置默认值。如果命令行中没有提供该参数,那么它的值将是这个默认值。
parser.add_argument('--output', type=str, default='output.txt', help='输出文件路径')
位置参数是必须提供的参数,而可选参数是以 -- 开头的参数。例如:
(1)位置参数
parser.add_argument('input', type=str, default='output.txt', help='输入文件路径')
(2)可选参数
parser.add_argument('--input', type=str, default='output.txt', help='输入文件路径')
可以使用 add_mutually_exclusive_group 方法添加互斥的选项组。例如,如果您想让用户选择 --input 或 --output,可以这样:
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--input', type=str, help='输入文件路径')
group.add_argument('--output', type=str, help='输出文件路径')
可以使用 nargs='?' 表示这个参数是可选的。
parser.add_argument('--input', action="store_true", nargs='?', help='输入文件路径')
可以使用 required=False 表示这个参数不是必须的。
parser.add_argument('--input', action="store_true", required=False, help='输入文件路径')
(1)命令行缩写:使用 choices 指定可选值的范围。例如,choices=['a', 'b'] 将限制选项为 'a' 或 'b'。
(2)参数的互斥性:使用 mutually_exclusive_group 确保某些选项不一起使用。
(3)使用前缀添加额外的帮助信息或使用不同的标记等。
使用 print(parser.format_help()) 可以打印出帮助信息,这对于用户了解如何使用您的程序非常有用。此外,还可以使用 --help 选项在命令行中快速查看帮助信息。