Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >给你的命令行工具加上一个高逼格的banner

给你的命令行工具加上一个高逼格的banner

作者头像
追马
发布于 2020-07-06 08:53:47
发布于 2020-07-06 08:53:47
2.8K00
代码可运行
举报
文章被收录于专栏:一日一工具一日一工具
运行总次数:0
代码可运行

看不懂man page, 小工具来帮你

你在看别人开源的命令行工具的时候,在支持-h或者-v的时候是不是经常看到下面这样的格式输出,你一定是好奇的,这是如何实现的,那今天就带你一块了解下这块的实现。

比如下面这种
再比如下面这种
或者是下面这种
亦或者是下面这种

不得不提的figlet

什么是figlet

figlet是一个可以生成ASCII Art字体工具,在编写一些CLI工具的时候可以作为banner,支持很多字形,对于终端展示十分炫(zhuang)酷(bi)。

安装

其实figlet支持的安装方式很多很多,比如pip, npm, brew等安装方式,今天我们主要来讲解下pip的安装方式,原因是因为安装完不单单可以作为命令行工具使用,还可以在你的Python程序里导入使用。

pip安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pyfiglet
brew安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew install figlet
npm安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install figlet

命令行使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> pyfiglet -f Banner3 z h u i m a
########    ##     ##    ##     ##    ####    ##     ##       ###
     ##     ##     ##    ##     ##     ##     ###   ###      ## ##
    ##      ##     ##    ##     ##     ##     #### ####     ##   ##
   ##       #########    ##     ##     ##     ## ### ##    ##     ##
  ##        ##     ##    ##     ##     ##     ##     ##    #########
 ##         ##     ##    ##     ##     ##     ##     ##    ##     ##
########    ##     ##     #######     ####    ##     ##    ##     ##


>

程序里使用

代码程序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: utf-8 -*-
# __Author__ = "zhuima"


from __future__ import absolute_import, unicode_literals

from pyfiglet import figlet_format
import six

try:
    import colorama

    colorama.init()
except ImportError:
    colorama = None

try:
    from termcolor import colored
except ImportError:
    colored = None


def log(string, color, font="Banner3", figlet=False):
    if colored:
        if not figlet:
            six.print_(colored(string, color))
        else:
            six.print_(colored(figlet_format(string, font=font), color))
    else:
        six.print_(string)


log("\nZ H U I M A", color="blue", figlet=True)
效果展示
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

> python test-figlet.py
########    ##     ##    ##     ##    ####    ##     ##       ###
     ##     ##     ##    ##     ##     ##     ###   ###      ## ##
    ##      ##     ##    ##     ##     ##     #### ####     ##   ##
   ##       #########    ##     ##     ##     ## ### ##    ##     ##
  ##        ##     ##    ##     ##     ##     ##     ##    #########
 ##         ##     ##    ##     ##     ##     ##     ##    ##     ##
########    ##     ##     #######     ####    ##     ##    ##     ##

> 

相关站点

github地址[1]

figlet.org[2]

在线生成[3]

总结

通过上面的简单的示例,这下终于知道酷炫的banner是如何实现的吧,快在你的下一个程序里用起来吧,保证逼格满满,瞬间高大上。

引用链接

[1] github地址: https://github.com/pwaller/pyfiglet [2] figlet.org: http://www.figlet.org/ [3] 在线生成: http://patorjk.com/software/taag

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 链上追马 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程
在平常的后端项目开发中,状态机模式的使用其实没有大家想象中那么常见,笔者之前由于不在电商领域工作,很少在业务代码中用状态机来管理各种状态,一般都是手动get/set状态值。去年笔者进入了电商领域从事后端开发。电商领域,状态又多又复杂,如果仍然在业务代码中东一块西一块维护状态值,很容易陷入出了问题难于Debug,难于追责的窘境。
蛮三刀酱
2022/06/01
4.1K0
github上fork2.4k,star8.7k的这款状态机,原来长这样!
上一篇文章《关于状态机的技术选型,最后一个真心好》我跟大家聊了一下关于”状态机“的话题。从众多技术选型中我也推荐了一款阿里开源的状态机—“cola-statemachine”。
陶朱公Boy
2023/01/07
1.1K0
github上fork2.4k,star8.7k的这款状态机,原来长这样!
聊聊Cola-StateMachine轻量级状态机的实现
在分析Seata的saga模式实现时,实在是被其复杂的 json 状态语言定义文件劝退,我是有点没想明白为啥要用这么来实现状态机;盲猜可能是基于可视化的状态机设计器来定制化流程,更方便快捷且上手快吧,毕竟可以通过UI直接操作,设计状态流转图,但我暂时不太能get到。对于Saga模式的实现,之前的博文中已经阐述了基于状态机模式实现Saga,是比较常见且合适的做法,因此了解了下Java中的状态机实现方案,以后有相关的业务场景也可以直接上手使用状态机。
Ryan_OVO
2023/10/19
1.2K0
聊聊Cola-StateMachine轻量级状态机的实现
Cola-StateMachine状态机的实战使用
在电商领域,很多业务对象都是有状态的,且这些对象的状态又多又复杂。硬编码的方式已经不适合管理当前复杂业务对象的状态。为了适配复杂多变的业务,可以使用状态机来管理状态,统一定义业务对象状态和状态的流转。接下来,本文会重点介绍状态机相关的概念和使用场景。
政采云前端团队
2023/10/24
7.4K0
Cola-StateMachine状态机的实战使用
COLA-statemachine在多级审核业务中的实践
在实际的项目开发中,开发者经常会遇见类似多级审核之类的开发需求,比如某个文件审核,需要经过申请->直系领导审核->总经理审核等多个步骤。如果是一次动作触发整个审核过程,开发者可能会想到使用责任链模式来进行开发。但如果多级审核的间隔时间长,审核触发的条件不一样,责任链模式会不太能够解耦这项需求。如果采用平铺直叙式开发,无疑会将审核状态转移过程散落在系统间各个位置,前后两个状态之间的关系没有直观进行维护,同时状态转移时的条件、执行的方式和状态之间的逻辑关系很容易让开发者写出“面条代码”。在项目开发初期可能还好,随着需求的增量变化,平铺直叙式开发将使得状态转移逻辑和业务逻辑高度混合,且每增加一级节点审核,就要新增对应的审核状态及状态转移的逻辑,长此以往变得难以阅读和维护。所以,在这种情况下使用状态机这样建模方式就显得尤为必要。
benym
2023/10/18
1.6K1
COLA-statemachine在多级审核业务中的实践
状态机入门实践
状态机是“有限状态自动机”的简称,是一种描述和处理事物状态变化的数学模型。本质上来讲,就是一种比if...else结构更加优雅,并具备可扩展性的状态转移处理机制。有多种实现方案,如:枚举,Spring Statemachine,cola state machine。
编程随笔
2024/03/30
2650
状态机入门实践
状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02
营销自动化平台支持多种不同类型运营活动策略(比如:短信推送策略、微信图文推送策略、App Push推送策略),每种活动类型都有各自不同的执行流程和活动状态。比如短信活动的活动执行流程如下:
2020labs小助手
2022/04/11
1.2K0
状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02
关于状态机的技术选型,最后一个真心好!
今天想跟大家分享一个关于“状态机”的话题。状态属性在我们的现实生活中无处不在。比如电商场景会有一系列的订单状态(待支付、待发货、已发货、超时、关闭);员工提交请假申请会有申请状态(已申请、审核中、审核成功、审核拒绝、结束);差旅报销单会有单据审核状态(已提交、审核中、审核成功、退回、打款中、打款成功、打款失败、结束)等等。
陶朱公Boy
2023/01/07
3.2K0
关于状态机的技术选型,最后一个真心好!
Spring Statemachine的应用
在开发中总会遇到这样的场景,比如工单状态,流程状态,通过状态判断该执行的操作,不断改动的需求导致永无止境的 IF、ELSE 和 BREAK 子句的层次结构,当事情开始看起来太复杂时,简直就像面满池子的海洋球。
张云飞Vir
2023/05/01
9210
Spring-statemachine实现订单状态机
每次用到的时候新创建一个状态机,太奢侈了,官方文档里面也提到过这点。而且创建出来的实例,其状态也跟当前订单的不符;spring statemachine暂时不支持每次创建时指定当前状态,所以对状态机引擎实例的持久化,就成了必须要考虑的问题。
才疏学浅的木子
2023/10/17
1.2K0
设计模式如何提升 vivo 营销自动化业务扩展性 | 引擎篇01
在《vivo 营销自动化技术解密 |开篇》中,我们从整体上介绍了vivo营销自动化平台的业务架构、核心业务模块功能、系统架构和几大核心技术设计。
2020labs小助手
2021/10/11
7220
设计模式如何提升 vivo 营销自动化业务扩展性 | 引擎篇01
啪!啪!@Transactional 注解的12种失效场景,这坑我踩个遍
在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。
程序员小富
2021/09/24
4.1K1
啪!啪!@Transactional 注解的12种失效场景,这坑我踩个遍
聊一聊 Spring StateMachine 的基本概念和实践
在之前的一些项目实践中,关于状态变更流转基本都是通过业务逻辑+更新表的方式来实现的;这种实现方式会在代码中产生较多的条件语句,从可读性上来说还算不错。近期项目中又涉及到一个状态流转的功能需求,因此笔者就期望借此来了解下状态机相关的机制和使用。笔者是基于 spring statem)achine 进行的调研;在查找相关资料和构建 demo 的过程中发现,网络上关于 spring statemachine 的一些介绍和使用,除了官方文档在概念上有比较全的概述之外,其他的均不能提供很好的入门指引,特别是在持久化部分。这也是笔者将本篇文章分享出来的原因,期望给各位读者提供一个比较完整的入门和应用案例(此瓜包熟)。
磊叔的技术博客
2025/06/09
2250
聊一聊 Spring StateMachine 的基本概念和实践
Spring事务详解
最近在项目组的业务技术分析会上,有同事遇到事务的失效的场景导致线上业务不可用。如果对Spring事务的@Transactional理解有限的话,确实很容易在开发中忽视一些细节问题,导致业务不可用的Bug。既然发生了问题,那么必然是要总结和反省的,然后我今天这里有时间总结一下各种事务失效的问题。
麋鹿大哥
2020/11/09
9610
Spring事务为什么会失效?
如果对AOP的实现不太熟悉的话可以看我之前的文章,或者到我网站www.javashitang.com上查看系列文章
Java识堂
2022/05/19
6330
Spring事务为什么会失效?
数据库事务提交后才发送MQ消息解决方案
在项目开发中常常会遇到在一个有数据库操作的方法中,发送MQ消息,如果这种情况消息队列效率比较快,就会出现数据库事务还没提交,消息队列已经执行业务,导致不一致问题。举个应用场景,我们提交一个订单,将流水号放在MQ里,MQ监听到后就会查询订单去做其它业务,如果这时候数据库事务还没提交,也就是没生成订单流水,MQ监听到消息就去执行业务,查询订单,肯定会出现业务不一致问题
SmileNicky
2023/11/03
1.3K0
数据库事务提交后才发送MQ消息解决方案
java 事务嵌套_Java事务以及嵌套事务[通俗易懂]
2、如果事务中存在异常,只要对异常进行捕获和处理,都为执行成功,否则都不会执行成功。
全栈程序员站长
2022/11/07
3.3K0
Spring事务失效场景
如果@Transactional 没有特别指定,Spring 只会在遇到运行时异常RuntimeException或者error时进行回滚,而IOException等检查异常不会影响回滚。
科技新语
2022/12/22
4650
Spring事务失效场景
SpringBoot集成Spring Statemachine(状态机)示例
本文将以电商项目中的订单状态转换这个典型的场景。从订单的创建到支付、发货、完成等状态来使用状态机进行管理。如果使用传统的if-else或者switch语句来管理这些状态,代码会变得非常臃肿且难以维护。而状态机提供了一种更加结构化和可维护的方式来管理这些状态转换。
程序员波特
2024/04/05
2.6K0
状态机
下面的内容基于https://github.com/alibaba/COLA。COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”。目前COLA已经发展到COLA v4。
路行的亚洲
2023/02/28
1.2K0
状态机
相关推荐
管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验