news 2026/4/15 16:31:39

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/14 14:40:52

8.13 正则表达式

文章目录 前言一、基本概念二、re模块常用方法1. 基本匹配方法2. 编译正则表达式(提高性能) 三、正则表达式语法1. 基本元字符2. 量词(重复匹配)3. 特殊字符类 四、分组和捕获五、标志(Flags)六、实际应用示…

作者头像 李华
网站建设 2026/4/12 18:07:09

SpaceX星链项目:HunyuanOCR自动化处理全球地面站维护日志

SpaceX星链项目:HunyuanOCR自动化处理全球地面站维护日志 在遥远的智利安第斯山脉边缘,一座星链地面站的技术员正用手机拍摄一张写满西班牙语的手写日志。几秒钟后,图像上传至本地服务器,一个轻量级AI模型迅速将文字识别并结构化为…

作者头像 李华
网站建设 2026/4/15 14:48:39

移动端适配问题:HunyuanOCR能否用于APP内集成?

移动端适配问题:HunyuanOCR能否用于APP内集成? 在如今的移动应用生态中,用户对“拍一下就能识别文字”的需求早已习以为常——无论是扫描合同、提取发票信息,还是翻译外文菜单,OCR能力几乎成了智能APP的标配功能。然而…

作者头像 李华
网站建设 2026/4/9 18:51:16

IPCC报告编写辅助:HunyuanOCR提取全球科研机构纸质研究成果

HunyuanOCR:用1B参数的小模型撬动全球气候科研文献数字化 在IPCC第六次评估报告发布的背后,有一个鲜为人知却至关重要的环节——如何将分散在全球数百个研究机构中的纸质研究报告转化为可分析、可引用的结构化数据。这些资料有的来自北极圈内的冰川观测站…

作者头像 李华