前言

按照官方的介绍:Click 是一个利用很少的代码以可组合的方式创造优雅命令行工具接口的 Python 库。 它是高度可配置的,但却有合理默认值的“命令行接口创建工具”。

它致力于将创建命令行工具的过程变的快速而有趣,免除你因无法实现一个 CLI API 的挫败感。

Click 的三个特性:

任意嵌套命令

自动生成帮助页面

支持在运行时延迟加载子命令

安装

直接从pypi中安装

pip install click

推荐大家使用豆瓣源

pip install -i https://pypi.douban.com/simple click

官方建议使用virtualenv环境来进行安装不是本文介绍要点,故略过。有兴趣可直接参考click官方文档[1]进行学习配置。

快速上手

我们通过一个简单的例子来说明,新建main.py文件:

import click

@click.command()
@click.option('-n', '--name', type=click.STRING, help='input your name please', required=True)
def say_hello(name):
click.echo('hello {name}'.format(name=name)) if __name__ == '__main__':
say_hello()

函数say_hello通过装饰器click.command()变为一个命令行工具

click.option()则是定义了参数name值的类型是String以及显示的提示help

我们可以在终端中进行调试查看

python main.py --help

可以得到输出:

Usage: main.py [OPTIONS]

Options:
-n, --name TEXT input your name please [required]
--help Show this message and exit.

接着我们传入参数值调用

python main.py -n silence4allen

可以得到输出:

hello silence4allen

至此,我们通过一个demo已经简单地了解了click的使用方法

参考文档

英文文档:https://click.palletsprojects.com/en/7.x/

中文文档:https://click-docs-zh-cn.readthedocs.io/zh/latest/index.html


  1. click文档中配置virtualenv的方法

python命令行开发--click的更多相关文章

  1. 快速上手 Python 命令行模块 Click

    关于Click? 说下 Click 模块是干啥的,简单说,它就是把我们的 Python 脚本的一些函数,通过 添加带有 Click 关键字的装饰器进行装饰进而将函数调用的形式转化为命令行传参的形式然后 ...

  2. python命令行神器Click

    原文: http://www.lengirl.com/code/python-click.html Click 是用Python写的一个第三方模块,用于快速创建命令行.我们知道,Python内置了一个 ...

  3. Python进阶:都说好用的 Python 命令行库click

    click 是一个以尽可能少的代码.以组合的方式创建优美的命令行程序的 Python 包.它有很高的可配置性,同时也能开箱即用. 它旨在让编写命令行工具的过程既快速又有趣,还能防止由于无法实现预期的 ...

  4. 【python】命令行神器 Click 简明笔记

    全文拷贝自 命令行神器 Click 简明笔记 Click Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建 ...

  5. Python 命令行之旅:使用 docopt 实现 git 命令

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  6. 用什么库写 Python 命令行程序?看这一篇就够了

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  7. python命令行下tab键补全命令

    在python命令行下不能使用tab键将命令进行补全,手动输入又很容易出错. 解决:tab.py #/usr/bin/env python # -*- coding:utf-8 -*- ''' 该模块 ...

  8. Python学子之如何退出python 命令行

    python命令行是新手学习python过程中必须要学的一个工具,下面我们来看一下怎么退出python命令行. 工具/原料 python2.7 方法/步骤 1.我们这里使用的是python3.6版本, ...

  9. [编译] 6、开源两个简单且有用的安卓APP命令行开发工具和nRF51822命令行开发工具

    星期四, 27. 九月 2018 12:00上午 - BEAUTIFULZZZZ 一.前言 前几天给大家介绍了如何手动搭建安卓APP命令行开发环境和nRF51822命令行开发环境,中秋这几天我把上面篇 ...

  10. python命令行解析模块--argparse

    python命令行解析模块--argparse 目录 简介 详解ArgumentParser方法 详解add_argument方法 参考文档: https://www.jianshu.com/p/aa ...

随机推荐

  1. 有关WCH的CH42x以及CH45x选型,常见问题处理方法

    南京沁恒微电子的CH45x系列为数码管.按键驱动芯片. CH42x系列为IO扩展芯片.CH422和CH423除了支持的OC数量有一些区别,在单片机的驱动上,并没有任何区别,驱动CH423的代码是可以套 ...

  2. SQLSERVER 的复合索引和包含索引到底有啥区别?

    一:背景 1. 讲故事 在 SQLSERVER 中有非常多的索引,比如:聚集索引,非聚集索引,唯一索引,复合索引,Include索引,交叉索引,连接索引,奇葩索引等等,当索引多了之后很容易傻傻的分不清 ...

  3. 真正“搞”懂HTTP协议07之队头阻塞真的很烦人

    这一篇文章,我们核心要聊的事情就是HTTP的对头阻塞问题,因为HTTP的核心改进其实就是在解决HTTP的队头阻塞.所以,我们会讲的理论多一些,而实践其实很少,要学习的头字段也只有一个,我会在最开始就讲 ...

  4. 深入探究Java中的对象类型变量声明操作——在声明对象时,系统究竟做了什么?

    深入探究Java中的对象类型变量声明操作--在声明对象时,系统究竟做了什么? 摘要:本文主要对Java中的对象类型变量的声明的底层原理做了探究. 目录 深入探究Java中的对象类型变量声明操作--在声 ...

  5. react,vue中的key有什么作用?(key的内部原理)

    1.虚拟DOM中的key的作用: key是虚拟dom对象的标识,当状态中的数据发生变化时,vue会根据新数据生成新的虚拟dom,随后vue进行新的虚拟dom与旧的虚拟dom的差异比较. 2.比较规则 ...

  6. Ubuntu下的LGT8F328P MiniEVB Arduino开发和烧录环境

    基于 LGT8F328P LQFP32 的 Arduino MiniEVB, 这个板型资料较少, 记录一下开发环境和烧录过程以及当中遇到的问题. 关于 LGT8F328P 芯片参数 8位RISC内核 ...

  7. 学习ASP.NET Core Blazor编程系列二十二——登录(1)

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...

  8. 手把手教你写Dockerfile以及测试

    Dockerfile是什么? dockerfile就是用来构建docker镜像的构建文件,命令参数脚本. 如何使用Dockerfile? 1.编写一个Dockerfile文件 2.docker bui ...

  9. wsl2和ArchLinux的安装

    版权声明:本文章参考了哔哩哔哩稿件BV1sW411v7VZ,如侵权请主动联系删除 1.Wsl2的安装 启用适用于 Linux 的 Windows 子系统 在终端运行:dism.exe /online ...

  10. vue中 beforeRouteLeave 生命周期函数

    beforeRouteLeave需求描述在使用 element-UI的table 的时候,有这么一个需求.从一个页面切换到另一个页面,再切回来的时候,滚动条的位置不变. 需求:滚动浏览列表页,出现滚动 ...