click简介
click是类似docopt的命令行工具,让我们可以快速的创建一个命令行工具,并且click能让我用尽量少的代码,并自动生成命令行帮助文档
正如官网所说,click有三大特性:
- arbitrary nesting of commands
- automatic help page generation
- supports lazy loading of subcommands at runtime
click基本使用
|
|
我在cmd中运行如下:
|
|
基本概念
click是基于装饰器的,我们可以在方法上使用click.command()
装饰器来将该方法变成一个命令行工具
|
|
|
|
echo()
之所以不使用print()
是为了兼容python2和3,当然也是可以使用print()
的
嵌套命令
可以通过group来实现命令行的嵌套,也就是让一个命令行工具具有多个命令
|
|
|
|
parameter
@click.argument()
可以给命令添加参数
|
|
|
|
parameter包括arguments和options,arguments一般是必须的,而options一般是可选的
parameter类型
click.STRING
:默认类型click.INT
:intclick.FLOAT
:floatclick.BOOL
:booleanclick.File
(mode=’r’, encoding=None, errors=’strict’, lazy=None, atomic=False)click.Path
(exists=False, file_okay=True, dir_okay=True, writable=False, readable=True, resolve_path=False, allow_dash=False, path_type=None)click.Choice
(choices)click.IntRange
(min=None, max=None, clamp=False)
File Arguments
|
|
File Path Arguments
|
|
Choice Options
|
|
|
|
Range Options
|
|
|
|
Options
Multi Value Options
|
|
Tuples as Multi Value Options
|
|
Multiple Options
|
|
|
|
Arguments
Variadic Arguments
|
|
nargs=-1
表示参数数目无限制
User Input Prompts
|
|
其他功能
click还有测试模块,以及输出带样式的文本等,在此就不详细介绍了