Python 标准库argparse模块介绍

argparse 是 Python 标准库中的一个模块,用于解析命令行参数和选项。它帮助开发者轻松编写用户友好的命令行接口,让程序可以通过命令行接受参数,而无需手动解析 sys.argvargparse 能自动生成帮助信息,并且处理各种复杂的命令行语法。

1. argparse 的核心概念

  • 命令行参数 :用户在命令行中传递给程序的参数,如 python script.py arg1 arg2 中的 arg1arg2
  • 位置参数:必须以特定顺序提供的参数。
  • 可选参数 :通常以 --- 开头的参数,可以不按顺序提供,且可能有默认值。

2. 使用 argparse 的基本步骤

  1. 创建一个 ArgumentParser 对象。
  2. 使用 add_argument() 方法定义程序需要的参数。
  3. 使用 parse_args() 解析命令行参数,并生成一个包含参数值的命名空间对象。

3. 示例代码

以下是一个使用 argparse 的简单示例:

复制代码
import argparse

# 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description="This is a simple argparse example.")

# 添加位置参数
parser.add_argument('filename', type=str, help='The name of the file to process.')

# 添加可选参数
parser.add_argument('--verbose', action='store_true', help='Increase output verbosity.')

# 添加带默认值的可选参数
parser.add_argument('--mode', type=str, choices=['train', 'test'], default='train', help='Mode of operation.')

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

# 使用解析后的参数
print(f"Filename: {args.filename}")
print(f"Mode: {args.mode}")

if args.verbose:
    print("Verbose mode is enabled.")

4. ArgumentParser 参数介绍

  • description:描述该解析器的作用,会在帮助信息中显示。
  • add_argument 方法参数
    • type :指定参数的数据类型,例如 intfloatstr
    • help:对参数的描述,用于生成帮助信息。
    • default:为可选参数指定默认值。
    • choices:限制参数的取值范围,用户输入的值必须在此范围内。

5. 生成帮助信息

如果用户在命令行中使用 -h--help 选项,argparse 会自动生成并显示帮助信息。

6. 总结

argparse 是一个强大且灵活的工具,适用于解析命令行参数。通过定义位置参数和可选参数,开发者可以方便地处理用户输入,并根据这些输入控制程序的行为。argparse 还能够自动生成用户友好的帮助信息,使得命令行工具更易于使用。

相关推荐
weigangwin3 小时前
采用 mem0 之前,先决定 Agent 到底允许记住什么
人工智能·opencv·ai·llm·memory·ai agent·mem0
木木学AI3 小时前
AI客服系统技术选型:Agentic架构与传统规则引擎的能力差异评估
人工智能·架构
hhzz3 小时前
Python大数据实战(十六):音乐推荐系统——基于协同过滤算法构建个性化歌单引擎
大数据·人工智能·python·数据挖掘·数据分析
带娃的IT创业者4 小时前
突破算力与安全的边界:深度解析 Mythos AI 的“受信发布”机制与技术影响
人工智能·安全·大语言模型·ai安全·mythos ai·受信发布·ai监管
dreamread4 小时前
2026紫微八字同排工具怎么选:看盘面切换、功能边界和学习路径
人工智能·软件工具·传统文化
耍酷的魔镜4 小时前
核心设计理念:5W2H、JSON-LD 与通用知识图谱
人工智能·json·知识图谱
SunnyDays10114 小时前
Python PDF 转 Markdown 详解(转换整个文档,特定页面,表格,扫描 PDF)
python·pdf 转 markdown·pdf 转 md·扫描 pdf 转 md·pdf 表格转 md
2601_954706494 小时前
云手机 API 自动化实战:Python 批量控机、挂机脚本完整实现
python·智能手机·自动化
星河耀银海4 小时前
大模型安全:对抗攻击与防御方法
人工智能·安全·大模型
xsdick5 小时前
抛弃 OpenClawd吧!我用 Go 打造了企业级 Swarm(蜂群)agent,更智能,更安全、性能快 5 倍、成本直降80%
人工智能·ai·ai编程