news 2026/6/15 15:30:30

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/6/15 4:00:16

手机截图翻译需求旺:HunyuanOCR拍照翻译功能测评

手机截图翻译需求旺:HunyuanOCR拍照翻译功能测评 在智能手机几乎成为人体延伸的今天,我们每天都在与海量信息搏斗——社交媒体上的外语帖子、跨境电商的商品详情页、海外新闻截图、甚至朋友发来的日语表情包配文。面对这些“看得见却读不懂”的瞬间&…

作者头像 李华
网站建设 2026/6/15 6:55:42

HTML5 Canvas结合OCR:前端直接处理图片文字的新模式

HTML5 Canvas结合OCR:前端直接处理图片文字的新模式 在数字化办公和智能交互日益普及的今天,用户对文档识别的期待早已超越“拍张照就能转文字”的初级阶段。他们希望上传一张发票、一份合同或一张身份证后,系统能立刻提取关键信息&#xff…

作者头像 李华
网站建设 2026/6/10 15:02:40

学术迷雾中的破晓之光:书匠策AI如何重塑本科论文写作新范式

在本科学习的尾声,一篇高质量的毕业论文不仅是学术能力的试金石,更是通往更高学术殿堂或理想职业的敲门砖。然而,面对浩如烟海的文献、错综复杂的逻辑框架以及严苛的格式规范,许多学子常常陷入“选题迷茫症”“逻辑构建困难症”和…

作者头像 李华
网站建设 2026/6/15 15:15:15

24 - 数据存储 - 向量数据库

数据库即用来组织、存储和管理数据的仓库,允许用户和程序以各种方式访问和处理数据。数据库的设计旨在管理大量信息,同时支持快速访问、高效查询、可靠的事务处理和并发访问。 随着嵌入技术的普及,向量数据库应运而生。曾经,嵌入…

作者头像 李华