📜  argparse 选择 (1)

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

介绍 argparse 的使用

简介

argparse 是 Python 的一个标准库,用于解析命令行参数。它可以让程序员更方便地获取和使用命令行参数,而不需要手动解析。argparse 提供了很多灵活的选项和用法,可以方便地应用到各种场景中。

简单使用
命令行参数

首先,我们来看一个简单的例子。假设有一个脚本名为 myscript.py,它有一个参数 --name,可以指定一个姓名,如下所示:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--name', type=str, help='input your name')
args = parser.parse_args()

print(f'Hello, {args.name}!')

现在在命令行中运行 python myscript.py --name Alice,将会输出:

Hello, Alice!
参数类型

argparse 可以很方便地指定参数的类型。例如,可以将 --age 定义为一个整数类型:

parser.add_argument('--age', type=int, help='input your age')

这样,在命令行中输入 --age 20 将会被视为整数类型。

必须参数

如果一个参数是必须的,可以在定义时使用 required=True

parser.add_argument('--message', required=True, help='input your message')

这样,在命令行中不输入 --message,将会出现错误提示。

布尔参数

布尔参数是指只有两种值的参数,例如开关。在 argparse 中,可以使用 action='store_true'action='store_false' 来定义。

例如,可以定义一个 --debug 参数,表示是否开启调试模式:

parser.add_argument('--debug', action='store_true', help='open debug mode')

在命令行中输入 --debug 就会被视为 True,否则视为 False。

参数别名

有时候,参数名比较长,不太方便输入。可以使用 alias 参数来定义一个参数的别名。例如,可以将 --name 定义为 -n 的别名:

parser.add_argument('--name', '-n', type=str, help='input your name')

现在,在命令行中可以输入 python myscript.py -n Alice 来指定姓名。

进阶使用
参数组

当有很多参数时,可以将它们分组,方便用户使用。例如,可以将 --name--age 放入一个参数组中:

group = parser.add_argument_group('Basic Info')
group.add_argument('--name', type=str, help='input your name')
group.add_argument('--age', type=int, help='input your age')

这样,在命令行中输入 python myscript.py --help 将会显示:

usage: myscript.py [-h] [--name NAME] [--age AGE]

optional arguments:
  -h, --help   show this help message and exit

Basic Info:
  --name NAME  input your name
  --age AGE    input your age
参数选择

有时候,参数只能取几个固定的值。例如,可以定义一个 --color 参数,只能取 redgreen

parser.add_argument('--color', choices=['red', 'green'], help='input color')

这样,在命令行中输入 --color blue 将会出现错误提示。

参数列表

有时候,参数可以输入多个值。例如,可以定义一个 --list 参数,可以输入多个值:

parser.add_argument('--list', nargs='+', help='input a list')

这样,在命令行中输入 --list 1 2 3 4 将会被视为一个列表 [1, 2, 3, 4]

参数分组

有时候,参数可以分为两个组,只显示其中一个组的帮助信息。例如:

group1 = parser.add_argument_group('Group 1')
group2 = parser.add_argument_group('Group 2', 'Only one of them')
group1.add_argument('--x', help='x')
group2.add_argument('--y', help='y')
group2.add_argument('--z', help='z')

这样,在命令行中输入 python myscript.py --help 将会显示:

usage: myscript.py [-h] [--x X] (--y Y | --z Z)

optional arguments:
  -h, --help  show this help message and exit

Group 1:
  --x X       x

Only one of them:
  --y Y       y
  --z Z       z
结论

argparse 是 Python 的一个标准库,用于解析命令行参数。它可以让程序员更方便地获取和使用命令行参数,而不需要手动解析。通过本文的介绍,相信你已经掌握了 argparse 的基本用法。当你需要解析命令行参数时,一定要记得使用 argparse!