argparse 模块
python
本文字数:790 字 | 阅读时长 ≈ 3 min

argparse 模块

python
本文字数:790 字 | 阅读时长 ≈ 3 min

Python argparse 模块使用指南

1. 简介

argparse 是 Python 的命令行解析包,用于在命令行中向程序传入和修改参数。该模块内置于 Python 中,无需额外安装。

2. 基本用法

使用 argparse 模块主要包含四个步骤:

  1. 导入模块:import argparse
  2. 创建解析器:parser = argparse.ArgumentParser()
  3. 添加参数:parser.add_argument()
  4. 解析参数:args = parser.parse_args()

基本示例:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("number", help="请输入数字", type=int)
parser.add_argument("str", help="请输入字符串", type=str)
args = parser.parse_args()

print(args.number + 10)
print(args.str)

命令行使用示例:

python script.py 42 "hello world"
# 输出:
# 52
# hello world

3. 重要参数说明

3.1 必选与可选参数

parser.add_argument("--number", type=int, required=True)  # 必选
parser.add_argument("--str", type=str, default="hello")   # 可选

3.2 action 参数

用于设置参数的行为:

示例代码:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true', help='是否显示详细信息')
args = parser.parse_args()

if args.verbose:
    print("显示详细信息")

命令行使用示例:

python script.py --verbose
# 输出: 显示详细信息

3.3 metavar 参数

metavar 主要用于自定义帮助信息中参数的显示名称,它不会影响程序的实际运行,只是让帮助文档更易读

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--name', type=str, help="用户名")
parser.add_argument('--age', type=int, metavar="USER_AGE", help="用户年龄")
parser.add_argument('--size', nargs=2, metavar=('WIDTH', 'HEIGHT'), help="尺寸 (宽度 高度)")

args = parser.parse_args()

当你运行 python script.py -h 时,会看到以下帮助信息:

optional arguments:
  -h, --help            show this help message and exit
  --name NAME           用户名
  --age USER_AGE       用户年龄
  --size WIDTH HEIGHT   尺寸 (宽度 高度)

注意区别:
–name 参数没有使用 metavar,所以显示为大写的 NAME
–age 参数使用了 metavar,所以显示为 USER_AGE
–size 需要两个值,使用 metavar 将它们显示为 WIDTH HEIGHT,更直观地表明需要输入宽度和高度
使用示例:
虽然在帮助信息中显示不同,但在代码中访问这些参数的方式不变:
所以 metavar 的主要作用是提高命令行帮助信息的可读性,让用户更容易理解每个参数的用途和预期输入。

python script.py --name john --age 25 --size 1920 1080

虽然在帮助信息中显示不同,但在代码中访问这些参数的方式不变:

print(args.name)   # john
print(args.age)    # 25
print(args.size)   # [1920, 1080]

所以 metavar 的主要作用是提高命令行帮助信息的可读性,让用户更容易理解每个参数的用途和预期输入。

3.4 dest 参数

用于指定参数在解析后的最终变量名:

parser.add_argument('--foo', dest='bar')  # 使用 args.bar 访问
4月 06, 2025
3月 10, 2025
12月 31, 2024