Click
是一个利用很少的代码以可组合的方式创造优雅命令行工具接口的 Python 库。
官方文档:https://click-docs-zh-cn.readthedocs.io/zh/latest/
简单示例
import click
@click.command()
@click.option('--count', default=1, help='输出次数')
@click.option('--name', prompt='输入你的姓名',
help='姓名')
def hello(count, name):
for x in range(count):
click.echo('Hello {}!'.format(name))
if __name__ == '__main__':
hello()
以上文件保存为 demo.py
,它创建了一个可选择输入两个参数的 Python 命令行工具。
我们先用 --help
命令来查看一下:
>>>python demo.py --help
Usage: demo.py [OPTIONS]
Simple program that greets NAME for a total of COUNT times.
Options:
--count INTEGER 输出次数
--name TEXT 姓名
--help Show this message and exit.
显示了可选的参数及其说明文字。
我们尝试下不带参数执行:
>>>python demo.py
输入你的姓名: tom
Hello tom!
prompt
字段控制了需要询问并要求输入的字段名(这里是 name
)。
在命令行带上参数执行:
>>>python demo.py --count 3
输入你的姓名: tom
Hello tom!
Hello tom!
Hello tom!
也可以带上多个参数执行:
>>>python demo.py --name tom --count 3
Hello tom!
Hello tom!
Hello tom!
嵌套命令
import click
@click.group()
def cli():
pass
@click.command()
def initdb():
click.echo('Initialized the database')
@click.command()
def dropdb():
click.echo('Dropped the database')
cli.add_command(initdb)
cli.add_command(dropdb)
if __name__ == '__main__':
cli()
创建一个 Group
对象,可以通过 Group.add_command()
赋予多个可以附加的子命令。
>>>python demo.py dropdb
Dropped the database
>>>python demo.py initdb
Initialized the database
网友评论