Click, 一个命令行解析的 Python 库

Click 是 Python 的一个命令行解析库,设计用于快速开发命令行工具。它具有直观的装饰器语法和强大的功能支持,使我们可以高效处理参数输入、自动生成帮助文档、支持多层级命令、参数验证等功能。

安装

pip install click -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com 

基本用法  

import click


@click.group()
def cli():
    """命令行工具主入口"""
    pass


@cli.group()
def user():
    """用户相关操作"""
    pass


@cli.group()
def config():
    """配置相关操作"""
    pass


@user.command()
@click.option('-n', '--name', type=str, required=True, help='用户名')
def create(name):
    """创建用户"""
    click.echo(f'创建用户:{name}')


@user.command()
@click.option('-n', '--name', type=str, required=True, help='用户名')
def delete(name):
    """删除用户"""
    click.echo(f'删除用户:{name}')


@config.command()
@click.option('-k', '--key', type=str, required=True, help='配置键')
@click.option('-v', '--value', type=str, required=True, help='配置值')
def set(key, value):
    """设置配置"""
    click.echo(f'设置配置:{key}={value}')


@config.command()
@click.option('-k', '--key', type=str, required=True, help='配置键')
def get(key):
    """获取配置"""
    click.echo(f'获取配置:{key}')


if __name__ == '__main__':
    cli() 

调试结果:

 

高级用法

  • 设置 default 参数,可以为选项指定默认值
@click.option('--name', default='默认值')
  • 参数类型与输入验证
@click.option('--count', type=int,...)
  • 处理命令行输入的多值参数 使用 multiple=True 可以接受多个值,类似于列表输入
@click.option('--language', type=click.Choice(['en', 'zh']), multiple=True, default=['en'], help='语言选择(可多个)')

  

import click


@click.command()
@click.option('--name', '-n', multiple=True, help='要问候的人名(可多个)')
@click.option('--language', type=click.Choice(['en', 'zh']), multiple=True, default=['en'], help='语言选择(可多个)')
def greet(name, language):
    greetings = {
        'en': 'Hello',
        'zh': '你好'
    }

    # 处理多个名字和语言
    names = name if name else ['World']
    languages = language if language else ['en']

    for lang in languages:
        for person in names:
            msg = f"{greetings[lang]}, {person}"
            msg = msg.upper() + '!'
            click.echo(msg)


if __name__ == '__main__':
    greet()

调试:python main.py -n Tom -n Admin --language en --language zh

 

文本增加颜色:

import click

msg = "Hello, Word!"

click.echo(click.style(msg, fg="red"))
click.echo(click.style(msg, fg="blue"))
click.echo(click.style(msg, fg=32))
click.echo(click.style(msg, fg="red", bg="blue", bold=True))

 

 

posted @ 2025-05-26 15:52  北京测试菜鸟  阅读(43)  评论(0)    收藏  举报