Click(Command Line Creation Kit)是一个广受欢迎的第三方 Python 库,用于编写结构化、优雅且易扩展的命令行程序。
与内置库 argparse 相比,它提供了更简洁的装饰器语法、更强的可组合性以及更加友好的用户体验。
Click 的目标是,在保持复杂命令行能力的同时,让开发过程尽可能简单。
安装 :
pip install click常见应用场景:
(1)快速构建命令行工具(CLI)
用简单的装饰器就能创建带参数与选项的命令。
(2)多级命令体系(子命令)
适合构建复杂的工具,如 git、docker 一样的命令层级结构。
(3)强类型输入与验证
Click 自动处理参数验证、类型转换、错误提示。
(4)增强用户体验
内置颜色、格式化输出、进度条、确认提示等功能。
(5)跨平台友好
包括 Windows、Linux、macOS 均表现稳定。
◆ ◆ ◆
核心概念
1、命令(Command)
使用 @click.command() 装饰器声明一个命令行入口函数。
2、参数(Argument)
位置参数,用户必须输入,例如:
mycli filename.txt由 @click.argument() 定义。
3、选项(Option)
带 --name(或 -n)的可选参数,如:
mycli --verbose由 @click.option() 定义。
4、命令组(Group)
支持多命令结构,通过 @click.group() 构建子命令系统。
5、上下文对象(Context)
Click 提供 ctx 对象传递共享信息(如配置、状态)。
6、Rich UI 辅助工具
如:
• click.echo():安全的终端输出
• click.secho():带色彩输出
• click.progressbar():进度条
• click.confirm():确认提示
◆ ◆ ◆
应用举例
例 1: 最简单的命令行程序
hello()运行:
python app.py输出:
Hello, Click!例 2:带参数与选项的命令
greet()使用演示:
python app.py Alice --upper例 3:多级命令(Group)
cli()运行:
python app.py stop例 4:进度条示例
download() 例 5: 确认提示 + 彩色输出
remove()◆ ◆ ◆
常用函数与类速览
@click.command()
声明一个命令行函数。
参数:无(可带 kwargs,如 name)。
返回:装饰后的可调用对象。
@click.group()
声明一个命令组,用于组织多个子命令。
返回:Group 对象。
@click.argument(name, type=str)
定义命令的位置参数。
参数:
name:参数名。
type:参数类型(默认字符串)。
返回:无(装饰器效果)。
@click.option(name, ... )
定义命令的选项参数。
参数(常用):
--name / -n:选项名称。
type:数据类型。
default:默认值。
is_flag:布尔开关选项。
返回:无(装饰器效果)。
click.echo(text, nl=True)
安全输出文本(优于 print())。
参数:
text:输出内容。
nl:是否自动换行(默认 True)。
返回:无。
click.secho(text, fg=None, bg=None, bold=False)
带颜色的终端输出。
参数:
text:输出内容。
fg:前景色。
bg:背景色。
bold:是否加粗。
返回:无。
click.confirm(text, default=False)
显示确认提示(yes/no)。
参数:
text:提示内容。
default:默认选择。
返回:True 或 False。
click.progressbar(iterable, ...)
创建进度条。
参数:
iterable:可迭代对象。
label:标签文字。
返回:进度条对象,可用于 with。
click.Context
Click 的上下文对象,用于存储共享状态。
常用属性:
obj:用户自定义对象
params:命令参数
返回:Context 实例。
◆ ◆ ◆
补充说明
(1)Click 的设计理念:简单优先(Composable)。
(2)支持自动生成 --help 文档。
(3)支持命令链、多命令脚手架、shell 自动补全等高级特性。
(4)与 Typer(Click 的高级封装)兼容性良好。
(4)在许多知名 CLI 工具(Flask、pipenv、aws-cli 第三方工具)中广泛使用。
小结
Click 是一个强大、优雅且可扩展的命令行构建工具。它比内置 argparse 更友好,比手写 CLI 更安全,也比大型 CLI 框架更轻量。
它让你能够:
用最少代码构建专业的命令行工具
使用装饰器编写清晰的命令结构
通过扩展与子命令构建复杂系统
提供更好的用户体验(颜色、进度条、确认提示等)
如果你需要编写 Python 的 CLI 工具,Click 几乎是首选方案。
![]()
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.