click库如何在Python中使用
本篇文章给大家分享的是有关click库如何在Python中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
click
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): ...
在上面的示例中:
使用装饰器的方式,即定义了参数,又将之与处理逻辑绑定,这真是优雅。和 argparse、docopt 比起来,就少了一步绑定过程
使用 click.command 表示 hello 是对命令的处理
使用 click.option 来定义参数选项
对于 --count 来说,使用 default 来指定默认值。而由于默认值是数字,进而暗示 --count 选项的类型为数字
对于 --name 来说,使用 prompt 来指定未输入该选项时的提示语
使用 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中使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...