click库如何在Python中使用

本篇文章给大家分享的是有关click库如何在Python中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

click

click库如何在Python中使用

click是一个以尽可能少的代码、以组合的方式创建优美的命令行程序的 Python 包。它有很高的可配置性,同时也能开箱即用。

它旨在让编写命令行工具的过程既快速又有趣,还能防止由于无法实现预期的 CLI API 所产生挫败感。它有如下三个特点:

  • 任意嵌套命令

  • 自动生成帮助

  • 支持运行时延迟加载子命令

快速开始

3.1 业务逻辑

首先定义业务逻辑,是不是感觉到有些难以置信呢?

不论是 argparse 还是 docopt,业务逻辑都是被放在最后一步,但 click 却是放在第一步。细想想 click 的这种方式才更符合人的思维吧?不论用什么命令行框架,我们最终关心的就是实现业务逻辑,其它的能省则省。

我们以官方示例为例,来介绍 click 的用法和哲学。假设命令行程序的输入是 name 和 count,功能是打印指定次数的名字。

那么在 hello.py 中,很容易写出如下代码:

defhello(count,name):
"""SimpleprogramthatgreetsNAMEforatotalofCOUNTtimes."""
forxinrange(count):
click.echo('Hello%s!'%name)

这段代码的逻辑很简单,就是循环 count 次,使用 click.echo 打印 name。其中,click.echo 和 print 的作用相似,但功能更加强大,能处理好 Unicode 和 二进制数据的情况。

3.2 定义参数

很显然,我们需要针对 count 和 name 来定义它们所对应的参数信息。

  • count 对应为命令行选项 --count,类型为数字,我们希望在不提供参数时,其默认值是 1

  • name 对应为命令行选项 --name,类型为字符串,我们希望在不提供参数时,能给人提示

使用 click,就可以写成下面这样:

fromclickimportclick

@click.command()
@click.option('--count',default=1,help='Numberofgreetings.')
@click.option('--name',prompt='Yourname',
help='Thepersontogreet.')
defhello(count,name):
...

在上面的示例中:

  1. 使用装饰器的方式,即定义了参数,又将之与处理逻辑绑定,这真是优雅。和 argparse、docopt 比起来,就少了一步绑定过程

  2. 使用 click.command 表示 hello 是对命令的处理

  3. 使用 click.option 来定义参数选项

    1. 对于 --count 来说,使用 default 来指定默认值。而由于默认值是数字,进而暗示 --count 选项的类型为数字

    2. 对于 --name 来说,使用 prompt 来指定未输入该选项时的提示语

    3. 使用 help 来指定帮助信息

不论是装饰器的方式、还是各种默认行为,click 都是像它的介绍所说的那样,让人尽可能少地编写代码,让整个过程变得快速而有趣。

3.3 代码梳理

使用 click 的方式非常简单,我们将上文的代码汇总下,以有一个更清晰的认识:

#hello.py
importclick

@click.command()
@click.option('--count',default=1,help='Numberofgreetings.')
@click.option('--name',prompt='Yourname',
help='Thepersontogreet.')
defhello(count,name):
"""SimpleprogramthatgreetsNAMEforatotalofCOUNTtimes."""
forxinrange(count):
click.echo('Hello%s!'%name)

if__name__=='__main__':
hello()

若我们指定次数和名字:

$python3hello.py--count2--nameEric
HelloEric!
HelloEric!

若我们什么都不指定,则会提示输入名字,并默认输出一次:

$python3hello.py
Yourname:Eric
HelloEric!

我们还可以通过 --help 参数查看自动生成的帮助信息:

Usage:hello.py[OPTIONS]

SimpleprogramthatgreetsNAMEforatotalofCOUNTtimes.

Options:
--countINTEGERNumberofgreetings.
--nameTEXTThepersontogreet.
--helpShowthismessageandexit.

以上就是click库如何在Python中使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。

发布于 2021-03-24 01:22:14
收藏
分享
海报
0 条评论
166
上一篇:怎么在ZK中利用JS读取客户端txt文件内容 下一篇:利用zrender.js怎么绘制一个体温单
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码