python命令行清除屏幕_python命令行解析库Click简介

5f637cd0898a4ad29a2609635cbad6ad.png

导读:本文介绍命令行库Click的基本使用方法,约1800字,正常读完需要12~15分钟。


功能

Click是一个Python"命令行接口创建工具包",通过Click .command()修饰函数,可以将其变成click命令行工具。

安装

conda install -c conda-forge click

或pip install click

示例:

1. 单函数

80573deefad7d78b4b432e18e0f584fe.png

这里的click.echo()可以理解为print()

2. 多函数

Commands可以附加到Group上,以实现同时将多个函数转为命令行工具

661d3acf965521fa48af158111c07e1e.png

3. 添加参数

可以通过option()和argument()两种方式添加命令行参数,参考下面这个示例:

5adfb3eab589b827d06bd0161d5d6848.png

可以简单理解为:option()传递可选参数;argument()传递位置参数。

常用参数选项详解

1. option()

a. 选项名称

@click.option('-s', '--string-to-echo', 'string'),-s为命令行短选项,'--string-to-echo'为命令行长选项,'string'为脚本内变量名。没有指定脚本内变量名,则优先使用命令行长选项。(注意,长选项中的-在脚本中会自动替换为_,即脚本中变量为string_to_echo)

b. 默认值设定

@click.option('--n', default=1)。

c. 变量类型

@click.option('--n', type=int) ,如果给定默认值,则变量的类型由默认值决定;如果没有给定默认值,也没有显示地指明类型,变量被识别为字符串。

d. 是否必须

@click.option('--n', required=True, type=int) ,required为真,则该变量必须在命令行给出

e. 在help信息中打印默认值

@click.option('--n', default=1, show_default=True)

f. 单个参数传入多个值

第一种方法:指定nargas=传递个数,@click.option('--pos', nargs=2, type=float),python example –pos 1 2将传入两个数,脚本中pos识别为元组(1.0, 2.0);

第二种方法:指定type为元组,@click.option('-- pos', type=(str, int))

第三种方法:重复命令行选项@click.option('--pos', multiple=True),python example.py --pos 1 --pos 2 (参考c,两个都识别为字符串)

g. 计数

@click.option('-v', '--verbose', count=True)。python example -vvv (脚本中verbose=3)

h. 布尔值

@click.option('--shout', is_flag=True)。出现—shout则脚本中shout变量为真,否则为假

i. 取值范围

字符串:type=click.Choice(['MD5', 'SHA1'], case_sensitive=False,不区分大小写

整数:type=click.IntRange(0, 20, clamp=True),clamp为真时,给定值超过范围则自定修改为最小值/最大值,为假则报错

浮点数:type=click. FloatRange (0, 20, clamp=True)

j. 获取环境变量

@click.option('--username', envvar='USERNAME') ,multiple=True可以获取多个值,linux上以:划分。(不推荐组合前缀组合那种方式)

2. argument()

a. 传递一个位置参数

@click.argument('filename')

b. 指定参数个数

@click.argument('src', nargs=2).nargs为-1表示接收所有参数

c. 文件参数

@click.argument('input', type=click.File('rb')) click.File()可以对文件进行一些处理,如判打开等;"-"可用于表示默认设备,即屏幕

d. 路径参数

@click.argument('filename', type=click.Path(exists=True))

e. 环境变量

@click.argument('src', envvar='SRC')

其他复杂操作请自行阅读官方文档。


最后,改写Argparse:一个具体案例教会你python命令行参数解析一文中的接口

403d9679ff48a4306a5a844dbb07edcb.png

拓展阅读:

python命令行解析库Fire简介

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值