前言

按照官方的介绍: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. Python启动HTTP服务进行文件传输

    有时候局域网共享个东西不方便,尤其在服务器上的时候,总不能先下载下来,再上传上去吧,于是经常在这台机器用python起个http服务,然后去另一台机器直接访问,一来二去,妥试不爽,特进行一下分离 py ...

  2. 搭建一个Hexo个人博客系统

    0x01 前言 虽然说前两天折腾了一下博客园(自己之前也有做过自己的博客,奈何维护费用太贵了,真的消耗不起,钱要花在刀刃上.) 网上有些教程有些参差不齐,今天给自己的真实搭建过程呈现给大家. 0x02 ...

  3. 深入理解 dbt 增量模型

    想要实现数据增量写入数据库,可以选择 dbt 增量模型.通过 dbt 增量模型,我们只用专注于写日增 SQL,不用去关注于如何安全的实现增量写入. dbt 增量模型解决了什么问题 原子性写入:任何情况 ...

  4. [Unity]Unity更改黑色主题(个人版)

    前言 首先需要一款软件:Winhex,由于现在已经是2018年,大部分百度的软件都已经失效或者出现一堆bug,我费了九牛二虎之力才找到这个可用的,下面是下载地址: 链接:https://pan.bai ...

  5. Java学习笔记 :2021年12月31日 上午

    Java学习笔记 :2021年12月31日 上午 目录 Java学习笔记 :2021年12月31日 上午 关于计算机语言 1.关于语言的分类 2.小结 关于Java语言的基础语法 1.主方法 2.其他 ...

  6. 特定领域知识图谱(Domain-specific KnowledgeGraph:DKG)融合方案:技术知识前置【一】-文本匹配算法、知识融合学术界方案、知识融合业界落地方案、算法测评KG生产质量保障

    特定领域知识图谱(Domain-specific KnowledgeGraph:DKG)融合方案:技术知识前置[一]-文本匹配算法.知识融合学术界方案.知识融合业界落地方案.算法测评KG生产质量保障 ...

  7. JVM是如何解决跨代引用问题的?

    本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 不知道自己的无知,乃是双倍的无知.--柏拉图 目录 跨代引用问题 记忆集 卡表 写屏障 ...

  8. Dijkstra算法详解(朴素算法+堆优化)

    定义 Dijkstra(读音:/'daɪkstrə/)算法,是用来求解一个边带权图中从某个顶点出发到达其余各个顶点的最短距离的算法.(为表达简便,下文中"起点(源点)到某个顶点的距离&quo ...

  9. Containerd NRI 插件

    Github:https://github.com/containerd/nri.git Slide:https://static.sched.com/hosted_files/kccncna2022 ...

  10. Go使用协程批量获取数据,加快接口返回速度

    服务端经常需要返回一个列表,里面包含很多用户数据,常规做法当然是遍历然后读缓存. 使用Go语言后,可以并发获取,极大提升效率. 使用channel package main import ( &quo ...