当前位置: 首页 > news >正文

8.12 argparse 模块


文章目录

  • 前言
  • 一、argparse 模块简介
    • 1.1 什么是 argparse?
  • 二、快速入门
    • 2.1 最简单的 argparse 程序
    • 2.2 参数类型:位置参数 vs 可选参数
  • 三、核心功能详解
    • 3.1 ArgumentParser 参数配置
    • 3.2 add_argument 参数详解
    • 3.3 action 参数动作
    • 3.4 nargs 参数数量

前言

本文主要介绍什么是 argparse模块、argparse模块快速入门以及argparse模块的核心功能详解。


一、argparse 模块简介

1.1 什么是 argparse?

argparse 是 Python 内置的命令行参数解析模块。它能自动生成帮助文档,验证用户输入,让你的脚本拥有专业级的命令行界面。

  • 主要功能:
    📝 解析命令行参数和选项
    📖 自动生成帮助文档
    ❌ 参数验证和错误提示
    🎯 支持参数类型转换

简单示例:

pythonimportargparse# 创建参数解析器parser=argparse.ArgumentParser(description="一个简单的示例程序")parser.add_argument('name',help="你的名字")args=parser.parse_args()print(f"你好,{args.name}!")运行方式: bash python script.py 小明# 输出:你好,小明!python script.py--help# 显示帮助文档

二、快速入门

2.1 最简单的 argparse 程序

python# simplest.py - 最简单的示例importargparse# 1. 创建解析器parser=argparse.ArgumentParser()# 2. 添加参数parser.add_argument('name')# 3. 解析参数args=parser.parse_args()# 4. 使用参数print(f"欢迎,{args.name}!")运行测试: bash# 正常运行python simplest.py Alice# 输出:欢迎,Alice!# 查看帮助python simplest.py--help# 输出:# usage: simplest.py [-h] name## positional arguments:# name## optional arguments:# -h, --help show this help message and exit# 缺少参数时报错python simplest.py# 输出:error: the following arguments are required: name

2.2 参数类型:位置参数 vs 可选参数

类型特点示例
位置参数必须提供,按顺序解析script.py input.txt
可选参数可选,以 - 或 – 开头script.py --verbose
python# args_demo.pyimportargparse parser=argparse.ArgumentParser(description="演示位置参数和可选参数")# 位置参数(必须提供)parser.add_argument('input_file',help="输入文件路径")# 可选参数(短选项 -v,长选项 --verbose)parser.add_argument('-v','--verbose',action='store_true',help="显示详细输出")args=parser.parse_args()print(f"输入文件:{args.input_file}")print(f"详细模式:{args.verbose}")

三、核心功能详解

3.1 ArgumentParser 参数配置

pythonimportargparse# 创建配置完善的解析器parser=argparse.ArgumentParser(prog='myapp',# 程序名(默认sys.argv[0])usage='%(prog)s [选项] 文件名',# 用法字符串description='这是一个文件处理工具',# 描述(帮助文档开头)epilog='感谢使用!',# 结尾文本(帮助文档末尾)add_help=True,# 自动添加 -h/--helpprefix_chars='-/',# 可选参数前缀(默认'-'))# 示例:使用前缀字符parser.add_argument('/v','//verbose',action='store_true')args=parser.parse_args(['/v'])# 支持 /v 和 //verbose

3.2 add_argument 参数详解

python# arg_demo.py - 演示各种参数选项importargparse parser=argparse.ArgumentParser()# 1. 基本参数(位置参数)parser.add_argument('filename',help="要处理的文件")# 2. 可选参数(短选项和长选项)parser.add_argument('-o','--output',dest='output_file',help="输出文件路径")# 3. 带类型的参数parser.add_argument('-n','--number',type=int,default=1,help="重复次数(默认: %(default)s)")# 4. 选择列表参数parser.add_argument('-m','--mode',choices=['fast','normal','slow'],default='normal',help="运行模式")# 5. 布尔标志参数parser.add_argument('-v','--verbose',action='store_true',help="启用详细输出")# 6. 必须的可选参数parser.add_argument('--config',required=True,help="配置文件路径(必须)")args=parser.parse_args()print(f"参数解析结果:{args}")

常用参数选项说明:

参数作用示例
dest参数存储的属性名dest=‘output’ → args.output
type参数类型转换type=int → 自动转整数
default默认值default=‘output.txt’
choices允许的值列表choices=[‘A’, ‘B’, ‘C’]
required是否必须required=True
help帮助文本help=“输入文件名”
action参数动作action=‘store_true’

3.3 action 参数动作

python# action_demo.pyimportargparse parser=argparse.ArgumentParser()# store - 存储值(默认)parser.add_argument('--input',action='store')# store_true/false - 布尔标志parser.add_argument('--enable',action='store_true')parser.add_argument('--disable',action='store_false')# append - 收集多个值parser.add_argument('--add',action='append')# count - 计数出现次数parser.add_argument('--verbose','-v',action='count',default=0)args=parser.parse_args(['--enable','--add','A','--add','B','-vv'])print(f"启用:{args.enable}")print(f"添加列表:{args.add}")print(f"详细级别:{args.verbose}")

3.4 nargs 参数数量

python# nargs_demo.pyimportargparse parser=argparse.ArgumentParser()# ? - 0或1个参数parser.add_argument('--optional',nargs='?')# * - 0或多个参数parser.add_argument('--files',nargs='*')# + - 1或多个参数parser.add_argument('--required',nargs='+')# 数字 - 固定数量参数parser.add_argument('--coords',nargs=2)# 解析示例args=parser.parse_args(['--optional','value','--files','a.txt','b.txt','--required','x','y','z','--coords','10','20'])print(f"可选:{args.optional}")print(f"文件:{args.files}")print(f"必需:{args.required}")print(f"坐标:{args.coords}")

http://www.jsqmd.com/news/188201/

相关文章:

  • 语言模型融合策略:HunyuanOCR内部是否集成BERT-like模块?
  • 8.13 正则表达式
  • Cross Attention机制应用:文本与图像特征融合方式揭秘
  • C++ 中的 string
  • 模型剪枝量化尝试:进一步压缩HunyuanOCR体积的可能性
  • 8.10 命名空间 作用域
  • 报错:OSError: [WinError 1455] 页面文件太小,无法完成操作
  • 华为云ModelArts适配可能性:公有云平台部署建议
  • 亲测好用10个AI论文网站,研究生高效写作必备!
  • CSS样式干扰识别吗?测试HunyuanOCR对网页截图的鲁棒性
  • 移动端适配问题:HunyuanOCR能否用于APP内集成?
  • Task02:数据库的基本使用(MongoDB)
  • 上下文纠错能力验证:HunyuanOCR是否具备语义校正功能
  • 2025年宁夏银川市有实力的岗亭源头厂家推荐排行榜,成品移动岗亭/值班岗亭/停车场岗亭/移动房屋,岗亭厂家推荐排行榜 - 品牌推荐师
  • 24 - 数据存储 - 向量数据库
  • Nginx反向代理配置:安全暴露HunyuanOCR 8000端口API
  • 边缘计算场景适用性:HunyuanOCR在IoT设备上的运行潜力
  • 2025知码狐北京集训
  • 车辆管理系统毕业论文+PPT(附源代码+演示视频)
  • OCR accuracy benchmark测试:HunyuanOCR vs PaddleOCR
  • JavaSE——while循环
  • 这可能是你见过最省钱的电梯调试方案
  • Obsidian笔记自动化:图片转文字并插入Markdown文档
  • 【数字信号去噪】基于matlab灰雁算法优化变分模态分解GGO-VMD数字信号去噪(优化K值 alpha值 综合指标 适应度函数包络熵)【含Matlab源码 14812期】
  • 低分辨率图像识别:HunyuanOCR在模糊画面下的稳定性
  • 视频字幕识别新方案:基于腾讯混元OCR的技术路径探索
  • 银泰百货卡套装回收全流程解析,专业平台让闲置变现金 - 京顺回收
  • WPS Office插件开发方向:内置AI文字识别功能探讨
  • React/Vue项目中引入HunyuanOCR:前后端分离架构整合思路
  • IPCC报告编写辅助:HunyuanOCR提取全球科研机构纸质研究成果