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
参数的脚本,实现文件复制或数据处理功能。