首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 内置模块 argparse 总结

Python 内置模块 argparse 总结

原创
作者头像
程序员余子越
发布2025-08-11 15:52:06
发布2025-08-11 15:52:06
15000
代码可运行
举报
运行总次数:0
代码可运行

在编写 Python 程序时,处理命令行参数是一个常见的需求。Python 提供了多个模块来处理命令行参数,其中 argparse 是最强大和灵活的一个。

参考文章:Python 内置模块 argparse | 简单一点学习 easyeasy.me

1. 什么是 argparse?

argparse 是 Python 标准库中的一个模块,用于编写用户友好的命令行界面。它可以自动生成帮助和使用信息,并处理用户输入的错误。argparse 支持位置参数和可选参数,并且可以轻松地定义参数的类型和默认值。

2. 基本用法

下面是一个使用 argparse 的基本示例:

代码语言:python
代码运行次数:0
运行
复制
import argparse

def main():
    # 创建解析器
    parser = argparse.ArgumentParser(description='这是一个示例程序')

    # 添加位置参数
    parser.add_argument('filename', type=str, help='要处理的文件名')

    # 添加可选参数
    parser.add_argument('--verbose', '-v', action='store_true', help='增加输出信息的详细程度')

    # 解析参数
    args = parser.parse_args()

    # 使用参数
    print(f"处理的文件是: {args.filename}")
    if args.verbose:
        print("详细模式已启用")

if __name__ == '__main__':
    main()

解释:

  1. 创建解析器:parser = argparse.ArgumentParser(description='这是一个示例程序')ArgumentParser 对象包含将命令行解析成 Python 数据类型所需的全部信息。description 参数用于生成帮助信息。
  2. 添加位置参数:parser.add_argument('filename', type=str, help='要处理的文件名')add_argument 方法用于定义单个命令行参数。filename 是一个位置参数,用户在运行程序时必须提供。
  3. 添加可选参数:parser.add_argument('--verbose', '-v', action='store_true', help='增加输出信息的详细程度')--verbose-v 是该参数的两种形式。action='store_true' 表示如果用户提供了该参数,则将其值设为 True,否则为 False
  4. 解析参数:args = parser.parse_args()parse_args 方法解析命令行参数并将其存储在 args 对象中。
  5. 使用参数:print(f"处理的文件是: {args.filename}") if args.verbose: print("详细模式已启用")根据解析后的参数执行相应的操作。

运行示例:

代码语言:bash
复制
$ python script.py example.txt
处理的文件是: example.txt

$ python script.py example.txt --verbose
处理的文件是: example.txt
详细模式已启用

$ python script.py --help
usage: script.py [-h] [--verbose] filename

这是一个示例程序

positional arguments:
  filename    要处理的文件名

optional arguments:
  -h, --help  show this help message and exit
  --verbose, -v  增加输出信息的详细程度

3. 高级用法

3.1. 类型和默认值

代码语言:python
代码运行次数:0
运行
复制
parser.add_argument('--count', '-c', type=int, default=1, help='重复次数')

在上面的例子中,--count 参数需要一个整数类型,并且有一个默认值 1

3.2. 位置参数的 nargs

代码语言:python
代码运行次数:0
运行
复制
parser.add_argument('numbers', type=int, nargs='+', help='一个或多个整数')

nargs='+' 表示该参数需要一个或多个值。

3.3. 子解析器

argparse 支持子解析器,可以为程序创建子命令。例如,git 命令有 git commit, git push 等子命令。

代码语言:python
代码运行次数:0
运行
复制
import argparse

def commit(args):
    print(f"提交消息: {args.message}")

def push(args):
    print(f"推送到远程仓库: {args.remote}")

def main():
    parser = argparse.ArgumentParser(description='Git 模拟程序')
    subparsers = parser.add_subparsers(dest='command', required=True)

    # 子命令 commit
    parser_commit = subparsers.add_parser('commit', help='提交更改')
    parser_commit.add_argument('message', type=str, help='提交消息')

    # 子命令 push
    parser_push = subparsers.add_parser('push', help='推送到远程仓库')
    parser_push.add_argument('--remote', '-r', type=str, default='origin', help='远程仓库名称')

    args = parser.parse_args()

    if args.command == 'commit':
        commit(args)
    elif args.command == 'push':
        push(args)

if __name__ == '__main__':
    main()

运行示例:

代码语言:bash
复制
$ python script.py commit "Initial commit"
提交消息: Initial commit

$ python script.py push -r origin
推送到远程仓库: origin

4. 错误处理

argparse 会自动处理一些常见的错误,例如缺少必需参数、无效的参数类型等,并生成相应的错误信息。

代码语言:bash
复制
$ python script.py --verbose
usage: script.py [-h] filename
script.py: error: the following arguments are required: filename

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 什么是 argparse?
  • 2. 基本用法
  • 3. 高级用法
    • 3.1. 类型和默认值
    • 3.2. 位置参数的 nargs
    • 3.3. 子解析器
  • 4. 错误处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档