千家信息网

命令行神器Click怎么用

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,命令行神器Click怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。写 Python 的经常要写一些命令行工具,虽然标准库提供有命令
千家信息网最后更新 2025年12月01日命令行神器Click怎么用

命令行神器Click怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

写 Python 的经常要写一些命令行工具,虽然标准库提供有命令行解析工具 Argparse,但是写起来非常麻烦,我很少会使用它。命令行工具中用起来最爽的就是 Click,它是 Flask 的团队 pallets 的开源项目。Click 只要很少的代码就可以优雅地创造一个命令行工具,它致力于将创建命令行工具的过程变的快速而有趣。

百闻不如一试

安装

pip install Click

使用

创建 click_demo.py ,写一个最简单的函数

import click

@click.command()
def hello():
click.echo('Hello World!')

if __name__ == '__main__':
hello()

运行:

python click_demo.py
Hello World!

装饰器 click.command() 使函数秒变命令行工具,echo 函数的作用等同于 print 函数。

参数

装饰器 click.option()可以给命令行函数指定参数

import click

@click.command()
@click.option("--count", default=1, help="打印次数", type=int)
def hello(count):
"""
这是一个简单示例
"""
for i in range(count):
click.echo('Hello World!')

if __name__ == '__main__':
hello()
  • -count:

    count是参数的名字

  • default :

    参数的默认值

  • type:

    给参数指定类型

  • help:

    说明文档

执行脚本的时候后面加上参数 --help 就可以查看说明文档。

$ python click_demo.py --help

Usage: click_demo.py [OPTIONS]

这是一个简单示例

Options:
--count INTEGER 打印次数
--help Show this message and exit.

指定参数:

>python click_demo.py --count 3

Hello World!
Hello World!
Hello World!

prompt

有些命令行工具在运行的时候要求用户输入信息,可以给 option 装饰器指定 prompt 参数

import click

@click.command()
@click.option("--count", default=1, help="打印次数", type=int)
@click.option("--name", prompt="请输入名字", help="姓名")
def hello(count, name):
"""
这是一个简单示例
"""
for i in range(count):
click.echo(f'Hello {name}!')

if __name__ == '__main__':
hello()
$ python click_demo.py

请输入名字: lzjun
Hello lzjun!

Group

Click 很重要的一个特性就是它的分组功能,当一个命令行工具的逻辑已经非常复杂的时候,为了解耦,我们需要将不同的逻辑放在不同的命令中,这样既可以避免单个命令行工具函数臃肿。来看个例子:

# db.py
import click

@click.group()
def db():
pass

@click.command()
@click.option("--name", help="用户名")
def add(name):
"""
添加用户
:param name:
:return:
"""
click.echo(f'add user {name}')

@click.command()
@click.option("--id", help="用户名")
def delete(id):
"""
删除用户
:param id:
:return:
"""
click.echo(f'delete user {id}')

db.add_command(delete)
db.add_command(add)

if __name__ == '__main__':
db()

这是一个操作数据库DB的命令行工具,提供了添加用户和删除用户的命令行等其它操作,如果所有的业务逻辑全部写在一个函数,维护变得异常困难。

@click.group 装饰器把函数装饰成为一个Group对象,通过 Group 可以添加很多子命令。

python db.py  --help
Usage: db.py [OPTIONS] COMMAND [ARGS]...

Options:
--help Show this message and exit.

Commands:
add 添加用户 :param name: :return:
delete 删除用户 :param id: :return:

从帮助文档中我们看到 adddelete 就是两个子命令。

Flask 的命令行工具 "flask" 也提供有很多子命令。

看完上述内容,你们掌握命令行神器Click怎么用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

命令 工具 用户 函数 参数 这是 名字 就是 文档 时候 次数 示例 逻辑 输入 神器 不同 内容 方法 更多 用户名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 福建智能化软件开发哪个好 读取微信数据库文件 福建省监狱管理局网络安全 网络安全 蜜罐的用途 王牌战争各个服务器 ecs服务器访问不到大端口 软件开发内容完整性和编制水平 放置江湖 服务器 软件开发报考哪个学校好 水江服务器 中化能源互联网科技工作 安全华为云云数据库代理 数据库安全性答案 昆仑通态怎样导入实时数据库 济宁安卓软件开发外包公司 u8数据库删除计量单位 疫情管理系统数据库设计开题报告 超视通网络技术牌 深化网络安全与信息化建设 松江区网络技术品牌 空间数据库系统的构成部分为 小象直聘网络技术东莞有限公司 武汉天融信网络安全技术有限公司招聘要求 mc阿里云服务器只能加两个人 台江区易米网络技术服务部 河北智能软件开发市场前景如何 软件开发协议未明确版权 家用服务器排名 网络安全的含义有哪些 服务器的邮件怎么读取
0