📅  最后修改于: 2023-12-03 15:13:28.657000             🧑  作者: Mango
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
参数,只能取 red
或 green
:
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!