百木园-与人分享,
就是让自己快乐。

Python超好用的命令行界面实现工具,我保证你肯定不知道...

前言

Click 是一个简洁好用的Python模块,它能用尽量少的代码实现漂亮的命令行界面。它不仅开箱即用、还能支持高度自定义的配

置。

官方文档:https://click.palletsprojects.com/en/8.0.x/

 

一个简单的示例如下:

import click
PYTHON插件/素材/源码加Q群:903971231####
@click.command()
@click.option(\'--count\', default=1, help=\'Number of greetings.\')
@click.option(\'--name\', prompt=\'Your name\',
              help=\'The person to greet.\')
def hello(count, name):
    \"\"\"Simple program that greets NAME for a total of COUNT times.\"\"\"
    for x in range(count):
        click.echo(f\"Hello {name}!\")

if __name__ == \'__main__\':
    hello()

 

在这里插入图片描述

效果如下:

在这里插入图片描述

可见这个模块的强大之处,你只需要在对应的函数上加几个装饰器,就能实现带提示符的命令行界面的创建,相当方便。

1.准备

首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具。

请选择以下任一种方式输入命令安装依赖:

1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install click

 

2.基本使用

如文首所示的例子一样,@click.option 是最基本的选项,它既可以设定参数默认值,也可以设定必须传入参数:

@click.command()
@click.option(\'--n\', default=1) # 设定了默认值
def dots(n):
    click.echo(\'.\' * n)
    

@click.command()
@click.option(\'--n\', required=True, type=int) # 设定必须传入参数值
def dots(n):
    click.echo(\'.\' * n)

 

如果你设置了必须传入相关参数,那么在没传入参数的情况下,效果是这样的:

在这里插入图片描述

当然,它还支持设定多种参数别名,比如下面的 --from 和 -f 是等效的:

@click.command()
@click.option(\'--from\', \'-f\', \'from_\')
@click.option(\'--to\', \'-t\')
def reserved_param_name(from_, to):
    click.echo(f\"from {from_} to {to}\")

 

在这里插入图片描述
在这里插入图片描述

3.多值参数

如果你的选项需要多个参数,Click也能帮你实现这个需求。

@click.command()
@click.option(\'--pos\', nargs=2, type=float)
def findme(pos):
    a, b = pos
    click.echo(f\"{a} / {b}\")

 

可见,通过配置nargs参数,你可以将用户传递的值存入元组,并在代码中解包这个元组拿到所有的值。

效果如下:

在这里插入图片描述

你还可以配置一个参数叫 multiple,这个参数可以让你接受N个值:

@click.command()
@click.option(\'--message\', \'-m\', multiple=True)
def commit(message):
    click.echo(\' \'.join(message))

 

在这里插入图片描述

4.其他功能

你还可以使用Click来计数,这个使用非常罕见:

@click.command()
@click.option(\'-v\', \'--verbose\', count=True)
def log(verbose):
    click.echo(f\"Verbosity: {verbose}\")

 

效果如下:
在这里插入图片描述

布尔标志

此外,Click还带有布尔标志功能,你可以直接使用 “/” 来标志参数为二选一参数,函数中直接就会拿到布尔型的变量:

import sys
python插件/源码/素材加Q群:903971231###
@click.command()
@click.option(\'--shout/--no-shout\', default=False)
def info(shout):
    rv = sys.platform
    if shout:
        rv = rv.upper() + \'!!!!111\'
    click.echo(rv)

 

在这里插入图片描述

在这里插入图片描述

选择选项

你可以直接限定用户的输入范围:

@click.command()
@click.option(\'--hash-type\',
              type=click.Choice([\'MD5\', \'SHA1\'], case_sensitive=False))
def digest(hash_type):
    click.echo(hash_type)

 

在这里插入图片描述

提示文本

在文首提到的例子中,输出了个 “You name:” 的提示,其实是 option 中的prompt参数控制的:

@click.command()
@click.option(\'--name\', prompt=\'Your name please\')
def hello(name):
    click.echo(f\"Hello {name}!\")

 

在这里插入图片描述

最后

好了,Click的功能就介绍到这里,他还有许多高级的用法,比如动态默认值、回调函数等等,大家可以通过官方文档了解这些高

级功能的使用方法:

https://click.palletsprojects.com/en/8.0.x/options/#name-your-options

 

在这里插入图片描述


来源:https://www.cnblogs.com/1234567FENG/p/16400944.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python超好用的命令行界面实现工具,我保证你肯定不知道...

相关推荐

  • 暂无文章