python简单应用_python之Click的简单应用

一、介绍

Click是一个Python包,用于以可组合的方式创建漂亮的命令行界面,只需要很少的代码。这是“命令行界面创建工具包”。它具有高度可配置性,但具有开箱即用的合理默认值。

安装:

pip install click

二、使用

简单的使用步骤:

@click.command() 装饰一个函数,使之成为命令行接口;

@click.option() 装饰函数,为其添加命令行选项等。

官方示例

# 此文件名为hello.py

importclick

@click.command()

@click.option('--count', default=1, help='Number of greetings.')

@click.option('--name', prompt='Your name',

help='The person to greet.')defhello(count, name):"""Simple program that greets NAME for a total of COUNT times."""

for x inrange(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会提示我们在交互模式下输入。

运行时的样子:

$ python hello.py --count=3

Your name: John

Hello John!

Hello John!

Hello John!

它会自动生成格式良好的帮助页面:

$ python hello.py --help

Usage: hello [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.

三、其他参数

1、option的参数

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

default: 设置命令行参数的默认值

help:参数说明

type:参数类型,可以是str、int、float等

prompt:当在命令行中没有输入相应的参数时,会更具prompt提示用户输入

nargs:指定命令行参数接受的值的个数

required:是否为必填参数

importclick

@click.command()

@click.option('--desc', nargs=2, type=str) #nargs确定参数个数,变量值会以tuple形式传入函数

defhello(desc):

click.echo(desc)

click.echo('Hello %s %s' %desc)if __name__ == '__main__':

hello()#执行

python hello.py --desc "帅哥" "xx"

#结果

('帅哥', 'xx')

Hello 帅哥 xx

四、扩展用法

1、限定用户从选项列表中选择输入

importclick

@click.command()

@click.option('--sex', required=True, type=click.Choice(['male', 'female']), prompt='你的性别') #限定-c的值为start,或者stop,required表示是否为必填参数

defset_sex(sex):

click.echo('你的性别是%s' %sex)if __name__ == '__main__':

set_sex()#1.输入参数

python test.py --sex male

你的性别是male#2.不输入参数

python test.py

你的性别 (male, female): male

你的性别是male

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值