千家信息网

命令行神器Click怎么用

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,命令行神器Click怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。写 Python 的经常要写一些命令行工具,虽然标准库提供有命令
千家信息网最后更新 2025年01月22日命令行神器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安全错误 数据库的锁怎样保障安全 杭州超声波液位计电路板软件开发 白云区国内网络技术开发经验丰富 自然资源三维时空数据库建设 通讯网络安全整改报告 香港科技园有限公司软件开发 网络安全作业教育平台登录 app电商软件开发服务 互联网科技公司做炒股软件 魔兽登录时候怎么改默认服务器 数据库工程师考试题型 乐富网络技术有限公司 sql关系型数据库 互联网科技插图 阴阳师人多的区服务器 知乎 加拿大服务器咋样 win10匹配什么数据库 你收集和记录了那些数据库 网络安全渗透网警是真的吗 企业强化工控网络安全 google云服务器地址 软件开发人力公司 网络安全威胁日语 java实例数据库增查 网络安全检查承诺书 数据库课程设计书籍推荐 杭州炫方网络技术有限公司 网络安全培训机构哪个比较好 提供相关领域统计数据库 路云天网络安全研究院联系方式 access数据库模块函数题
0