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

Python argparse库介绍(内置的命令行参数解析库)(未检查)

文章目录

  • 一、`argparse` 是什么?
  • 二、最简单的示例
  • 三、必选参数与位置参数
  • 四、添加可选参数(带默认值)
  • 五、布尔参数(开关选项)
  • 六、限制参数取值范围(choices)
  • 七、生成帮助信息(`--help`)
  • 八、多个参数组合示例
  • 九、总结
  • 十、结语

在编写 Python 脚本时,我们经常希望能像 Linux 命令行工具那样,通过命令行参数灵活控制程序行为。例如:

python main.py --input data.txt --verbose

为了实现这种功能,Python 标准库中提供了一个非常强大的模块 —— argparse
本文将从基础到进阶,带你全面了解 argparse 的用法。


一、argparse 是什么?

argparse 是 Python 内置的命令行参数解析库,无需安装第三方包。
它的主要作用是:

  • 让程序能够从命令行获取参数;
  • 自动生成帮助文档(--help);
  • 自动进行类型校验和错误提示。

也就是说,你不再需要自己解析 sys.argv 列表,argparse 会帮你轻松搞定所有参数逻辑。


二、最简单的示例

我们从一个最小可运行例子开始:

import argparse# 1️⃣ 创建解析器
parser = argparse.ArgumentParser()# 2️⃣ 添加参数
parser.add_argument("--name", help="请输入你的名字")# 3️⃣ 解析参数
args = parser.parse_args()print(f"你好,{args.name}!")

运行方式:

python hello.py --name 小明

输出:

你好,小明!

如果你忘记输入参数:

python hello.py

输出:

你好,None!

三、必选参数与位置参数

有时候参数是必填的,比如文件路径。
此时我们可以用“位置参数”:

import argparseparser = argparse.ArgumentParser(description="文件读取工具")parser.add_argument("filepath", help="输入文件路径")args = parser.parse_args()print(f"准备读取文件:{args.filepath}")

运行:

python read.py data.txt

输出:

准备读取文件:data.txt

如果忘记输入参数,argparse 会自动提示:

usage: read.py [-h] filepath
read.py: error: the following arguments are required: filepath

四、添加可选参数(带默认值)

import argparseparser = argparse.ArgumentParser()parser.add_argument("--count", type=int, default=1, help="重复次数(默认1次)")args = parser.parse_args()for i in range(args.count):print("你好,世界!")

运行:

python demo.py --count 3

输出:

你好,世界!
你好,世界!
你好,世界!

五、布尔参数(开关选项)

如果你想添加一个“开关”参数(如 --verbose),可以使用 action 参数:

import argparseparser = argparse.ArgumentParser()parser.add_argument("--verbose", action="store_true", help="输出详细日志")args = parser.parse_args()if args.verbose:print("运行模式:详细")
else:print("运行模式:普通")

运行:

python run.py
# 输出:运行模式:普通python run.py --verbose
# 输出:运行模式:详细

六、限制参数取值范围(choices)

import argparseparser = argparse.ArgumentParser()parser.add_argument("--level",choices=["low", "medium", "high"],default="medium",help="设置运行级别"
)args = parser.parse_args()print(f"运行级别:{args.level}")

运行:

python app.py --level high

输出:

运行级别:high

输入错误的参数时会自动提示:

error: argument --level: invalid choice: 'super' (choose from 'low', 'medium', 'high')

七、生成帮助信息(--help

每个 ArgumentParser 都会自动生成帮助信息:

python demo.py --help

输出:

usage: demo.py [-h] [--count COUNT]options:-h, --help     show this help message and exit--count COUNT  重复次数(默认1次)

这就是为什么我们在 add_argument 时推荐写上 help 描述 —— 它会自动出现在帮助文档中。


八、多个参数组合示例

import argparseparser = argparse.ArgumentParser(description="示例:多参数组合")parser.add_argument("input", help="输入文件路径")
parser.add_argument("output", help="输出文件路径")
parser.add_argument("--format", choices=["json", "csv"], default="json", help="输出格式")
parser.add_argument("--verbose", action="store_true", help="显示调试信息")args = parser.parse_args()if args.verbose:print(f"输入文件:{args.input}")print(f"输出文件:{args.output}")print(f"输出格式:{args.format}")

运行:

python tool.py data.txt result.json --format csv --verbose

九、总结

功能用法
创建解析器parser = argparse.ArgumentParser()
添加参数parser.add_argument()
解析参数args = parser.parse_args()
必选参数不加 --,如 parser.add_argument("path")
可选参数--,如 parser.add_argument("--verbose")
设置默认值default=...
设置类型type=int
限制取值choices=[...]
开关参数action="store_true"
查看帮助python script.py --help

十、结语

argparse 是 Python 编写命令行工具的基石。
无论是小脚本还是完整 CLI 应用,学会它能让你的代码更专业、更易用。

👉 建议练习:尝试写一个带 --input--output--verbose 参数的脚本,实现文件复制或数据处理功能。

http://www.dtcms.com/a/453416.html

相关文章:

  • JMeter之 json提取器与json path语法
  • 深度学习之神经网络2(Neural Network)
  • 做UI设计的网站网站界面设计尺寸
  • Python全栈(基础篇)——Day06:后端内容(定义函数+调用函数+实战演示+每日一题)
  • C++算法·贪心例题讲解
  • 成都正规集团网站制作维护商业综合体
  • 网站做生鲜线下推广建议wordpress可视化编辑主题
  • 《投资-81》价值投资者的认知升级与交易规则重构 - 第一层:商业模式详解、常见的优质模式商业模式、价值投资选择的标准
  • UI设计(一)应用商店展示图标封面标题——东方仙盟筑基期
  • 空间制作网站网站建设目标计划书
  • JAVA算法练习题day34
  • [Java]PTA:(选做) jmu-Java-03面向对象基础-覆盖与equals
  • 网站建设图片logo电子商务就是网络营销
  • 机器学习基础入门(第四篇):无监督学习与聚类方法
  • Go基础:一文掌握Go语言泛型的使用
  • iBizModel 实体逻辑(PSDELOGIC)中的界面逻辑子类(VIEWLOGIC)详解
  • pywebview:用Python+Web技术打造轻量级桌面应用!
  • python 做办公网站移动应用开发学什么
  • 数据库迁移migration
  • Channel 和 Flow 选择场景对比 (例子:不停发事件的场景)
  • 《Vuejs设计与实现》第 18 章(同构渲染)(下)
  • jsp网站开发大作业长春网站建设wang
  • 淄博网站建设网宽河北网站建设推广电话
  • Django ORM 详解
  • C语言模拟面向对象编程方法之多态
  • 温州市建设工程管理网站温州建设网站哪家好
  • 划时代的技术飞跃:OpenAI DevDay 2025 全面深度解读
  • 做网站的网页图片素材怎么找长春做网站哪家便宜
  • 计算机操作系统:操作系统的发展过程
  • 未来之窗昭和仙君 (十三) 对话框组件— 东方仙盟筑基期