python-Click库

Click

Click全名Command Line Interface Creation Kit,是一个用于构建命令行的第三方库,相较于Python自带的Argparse更加友好和易用。


官方文档:Click | The Pallets Projects

PyPI:Click · PyPI


安装

pip install click


用法

引用库import click

@click.command()

使用@click.command()修饰想要构建为命令行命令的函数

'''
filename: test.py
'''
import click

@click.command()  # 为函数`test()`添加修饰器
def test():
    click.echo("测试函数,没有什么卵用")

if __name__ == "__main__":
    test()

添加后和没有加没有任何不同,因为没有使用@click.option()进行命令行选项的进一步设置

使用click.echo()是为了更好的终端兼容性

@click.option()

使用@click.option()增加修饰选项

'''
filename: test.py
'''
import click

@click.command()  # 为函数`test()`添加修饰器
@click.option(
    "-n",
    "--name",
    prompt="请输入你的名字",
    default="无名氏",
    help="你的名字。默认值为“无名氏”",
    type=str,
) # 设置参数
def test(name):
    click.echo(("你输入的名字为:{}").format(name)) #输出

if __name__ == "__main__": # 程序入口
    test()
lkhsss@LKH-PC:~$ python test.py -n LKH
你输入的名字为:LKH

lkhsss@LKH-PC:~$ python test.py
请输入你的名字 [无名氏]: LKH
你输入的名字为:LKH
  • @click.option()接受一种参数多种名字,上例的-n--name都指向了一个函数

  • 使用prompt指定必须要求输入的参数在没有传入时显示的提示

    • 当使用了prompt时,click会认为该参数为必须项,会主动询问参数的值

  • 使用help指定该参数的帮助信息

  • 使用type指定传入数据的类型

    • 使用type=click.Choice['A','B']限制该参数只能从A和B中选择

菜单选项

配置好参数后,click自动为我们准备了--help选项,其中包含了我们在help中加入的帮助信息

lkhsss@LKH-PC:~$ python test.py --help
Usage: test.py [OPTIONS]

Options:
  -n, --name TEXT  你的名字。默认值为“无名氏”
  --help           Show this message and exit.

示例

'''
filename: test.py
author: Lkhsss
'''
import click

@click.command()  # 为函数`test()`添加修饰器
@click.option(
    "-n",
    "--name",
    prompt="请输入你的名字",
    default="无名氏",
    help="你的名字,传入参数后将显示在输出中。默认值为“无名氏”",
    type=str,
)
# 选择可以传入`test()`的参数
# 可以使用多个参数名,输入"-n","--name"都会指向`test()`函数
# 使用default参数设置参数默认值
# 使用help参数设置帮助菜单
@click.option(
    "-c",
    "--count",
    prompt="请输入循环次数",
    default="1",
    help="显示名字次数,默认值为1",
    type=int
)
def test(name, count):
    for i in range(count):
        click.echo(("{},你好。").format(name))
    click.echo("这是一个示例函数,可以输出你在命令行中输入的名字,用来测试click库")

if __name__ == "__main__":
    test()

python-Click库
https://blog.lkhsss.cn/编程/Python/库/python-click库/
作者
Lkhsss
发布于
2022年12月10日
许可协议