news 2026/4/18 1:59:53

8.12 argparse 模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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}")

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 19:01:27

倾斜角度容忍度测试:HunyuanOCR对旋转图像的适应性

倾斜角度容忍度测试:HunyuanOCR对旋转图像的适应性 在移动办公、跨境购物和现场取证等现实场景中,用户拍下的文档往往歪斜得“惨不忍睹”——手机随手一拍,角度偏了45度;快递单贴在曲面包装上,文字扭曲变形&#xff1b…

作者头像 李华
网站建设 2026/4/1 8:51:44

本地跑小模型带来5倍性能且成本极低!斯坦福从信息论视角重构智能体设计

斯坦福大学研究团队通过信息论视角重构了智能体系统设计,发现将算力前置投入到本地压缩小模型比盲目扩大云端推理大模型带来的性能提升高达5倍且成本极低。智能体系统的隐形瓶颈与信息论重构人工智能应用已渗透进我们工作的方方面面。从复杂的深度研究系统到代码助手…

作者头像 李华
网站建设 2026/4/17 16:53:38

上下文纠错能力验证:HunyuanOCR是否具备语义校正功能

HunyuanOCR是否具备语义校正能力?从技术到落地的深度验证 在银行柜台,一份模糊的身份证复印件被扫描上传;在跨境电商平台,一张手写的海关申报单由手机拍摄后提交;在智能办公系统中,员工随手拍下的报销发票需…

作者头像 李华
网站建设 2026/4/17 13:23:56

低分辨率图像识别:HunyuanOCR在模糊画面下的稳定性

低分辨率图像识别:HunyuanOCR在模糊画面下的稳定性 在移动办公、视频监控和远程身份核验日益普及的今天,一个看似简单却频繁出现的问题正困扰着许多AI系统——如何从一张模糊、低清甚至严重压缩的照片中准确提取文字信息? 比如,用…

作者头像 李华
网站建设 2026/4/16 21:47:57

防刷与反欺诈终极实践白皮书—— 从网络入口到业务核心的纵深防御体系

一、背景:为什么「防刷」必须升级为「反欺诈」 在早期互联网阶段,攻击者的主要手段是: 单 IP 高频请求 简单脚本刷接口 暴力枚举账号 / 短信 这些问题,用限流 + 验证码就能解决。 但在今天,攻击已经发生了根本变化: 代理 IP 池、住宅 IP、IPv6 模拟器、云手机、设备农场…

作者头像 李华
网站建设 2026/4/16 12:36:19

CSS样式干扰识别吗?测试HunyuanOCR对网页截图的鲁棒性

CSS样式干扰识别吗?测试HunyuanOCR对网页截图的鲁棒性 在数字内容日益视觉化的今天,网页早已不再是简单的文字堆叠。从渐变字体到半透明图层,从倾斜变形到动态阴影——现代CSS赋予了文本前所未有的表现力。但这种“美”也带来了新的挑战&…

作者头像 李华