• Python 处理脚本的命令行参数(二):使用click


    安装click

    pip install click

    使用步骤

    1. 使用@click.command() 装饰一个函数,使之成为命令行接口
    2. 使用@click.option() 等装饰函数,为其添加命令行选项

    example:

    import click
     
    @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."""  # 会当作help信息进行输出
        for x in range(count):
            click.echo('Hello %s!' % name)
     
    if __name__ == '__main__':
        hello()

    在上面的例子中,函数hello接受两个参数,分别是count和name,他们的取值从命令行中获取,这里我们使用了click模块中的command、option、echo,他们的作用如下:

    • command:使函数hello成为命令行接口
    • option:增加命令行选项
    • echo:输出结果,使用echo进行输出是为了更好的兼容性,因为python 2中的print是个语句,python 3中的print 是一个函数

    运行上面的脚本,可以通过命令指定--name,--count的值,由于我们在option中指定了prompt选项,那么如果我们执行脚本没有传递name这个参数时,Click会提示我们在交互模式下输入

    PS:与argparse模块一样,click也会为我们自动生成提示信息

    ************python  clicktest.py --help
    Usage: clicktest.py [OPTIONS]
     
      Simple program that greets NAME for a total of COUNT times.
     
    Options:
      --count INTEGER  Number of greetings.
      --name TEXT      The person to greet.
      --help           Show this message and exit.

    其它参数:

    option最基本的用法就是通过指定命令行选项的名称,从命令行读取参数值,再将其传递给函数。option常用的参数含义:

    • default: 设置命令行参数的默认值
    • help:参数说明
    • type:参数类型,可以是string、int、float等
    • prompt:当在命令行中没有输入相应的参数时,会更具prompt提示用户输入
    • nargs:指定命令行参数接受的值的个数
    • required:是否为必填参数

    Click 2.0还加入了ANSI colors支持,如果输出结果到文件中还会自动去处ANSI codes。

    要使用ANSI colors我们需要colorama包配合操作:

    pip install colorama

    示例:

    click.echo(click.style("Hello World!", fg='green')) # click.secho('Hello World!', fg='green')
  • 相关阅读:
    如何安装一个高可用K3s集群?
    如何设置一个生产级别的高可用etcd集群
    从架构到部署,全面了解K3s
    这应该是最适合国内用户的K3s HA方案
    在K3s上使用Kong网关插件,开启K3s的无限可能!
    AngularJS 遗留项目的升级改造之路(一)
    Rancher首席架构师解读Fleet:它何以管理百万集群?
    资深首席架构师预测:2021年云计算的8个首要趋势
    简单4步,利用Prometheus Operator实现自定义指标监控
    当年,我的架构师之路差点完蛋,幸亏了它
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/10213810.html
Copyright © 2020-2023  润新知