Click是一个简单易用的Python模块,可以用尽可能少的代码实现漂亮的命令行界面。它不仅开箱即用,还支持高度定制的配置。一个简单的例子如下:importclick@click.command()@click.option('--count',default=1,help='Numberofgreetings.')@click.option('--name',prompt='Yourname',help='Thepersontogreet.')defhello(count,name):"""向NAME打招呼总共COUNT次的简单程序。"""forxinrange(count):click.echo(f"Hello{name}!")if__name__=='__main__':hello()的效果如下:可见这个模块的强大,只需要加几个装饰器对应的功能,可以创建一个带提示符的命令行界面,还是比较方便的。1.在开始之前,您需要确保您的计算机上已经成功安装了Python和pip。(方案一)如果使用Python进行数据分析,可以直接安装Anaconda,Anaconda内置了Python和pip。(方案二)另外,推荐大家使用VSCode编辑器,优点很多。请选择以下方式之一输入命令安装依赖项:Windows环境打开Cmd(开始-运行-CMD)。MacOS环境打开Terminal(command+空格进入Terminal)。如果您使用的是VSCode编辑器或Pycharm,则可以直接使用界面底部的Terminal。pip安装点击2。基本使用和文章开头的例子一样。@click.option是最基本的选项。可以设置参数的默认值或者设置必须传入的参数:@click.command()@click.option('--n',default=1)#设置默认值defdots(n):click.echo('.'*n)@click.command()@click.option('--n',required=True,type=int)#设置必须传入的参数值defdots(n):click.echo('.'*n)如果设置了必须传入的相关参数,那么在不传入参数的情况下,效果如下:当然也支持设置多种参数别名,比如下面的--from和-f是等价的:@click.command()@click.option('--from','-f','from_')@click.option('--to','-t')defreserved_pa??ram_name(from_,to):click.echo(f"from{from_}to{to}")3.多值参数如果你的选项需要多个参数,Click也可以帮你实现这个需求。@click.command()@click.option('--pos',nargs=2,type=float)deffindme(pos):a,b=posclick.echo(f"{a}/{b}")可以看出,通过配置nargs参数,可以将用户传递过来的值存储到一个元组中,在代码中解包元组得到所有的值。效果如下:还可以配置一个参数multiple,可以接受N个值:@click.command()@click.option('--message','-m',multiple=True)defcommit(message):click.echo(''.join(message))4.其他的功能,也可以用Click来统计,这种情况很少见:@click.command()@click.option('-v','--verbose',count=True)deflog(verbose):click.echo(f"Verbosity:{verbose}")效果如下:Booleanflag另外,Click还有一个booleanflag功能,可以直接使用“/”来标记参数为两个选项之一,以及布尔变量将在函数中直接获取:platformifshout:rv=rv.upper()+'!!!!111'click.echo(rv)选择选项可以直接限制用户的输入范围:@click.command()@click.option('--hash-type',type=click.Choice(['MD5','SHA1'],case_sensitive=False))defdigest(hash_type):click.echo(hash_type)提示文字在开头提到的例子中文章中,输出了一个“你的名字:”的提示,这个提示实际上是由option中的提示参数控制的:@click.command()@click.option('--name',prompt='Yournameplease')defhello(name):click.echo(f"Hello{name}!")好了Click的功能到此结束,他还有很多高级用法,例如动态默认值、回调函数等,你可以通过官方文档学习如何使用这些高级功能。这是我们文章的结尾。如果喜欢今天的Python实战教程,请关注公众号:Python编程学习圈,或者编程学习网,了解更多编程技术干货,领取海量学习资料!
