pyfiglet库使用详解

pyfiglet简介

pyfiglet是figlet的python实现。

那么figlet是什么?好吧,就是这个:

1
2
3
4
5
_____ ___ ____ _ _
| ___|_ _/ ___| | ___| |_
| |_ | | | _| |/ _ \ __|
| _| | | |_| | | __/ |_
|_| |___\____|_|\___|\__|

说简单点就是输出像上图这样的由字符拼凑的图形。

使用

1
pip install pyfiglet

安装好pyfiglet之后就同时安装好了pyfiglet命令行工具和pyfiglet模块。

使用pyfiglet命令行工具

1
2
3
4
5
6
C:\WINDOWS\system32>pyfiglet zzx
__________ __
|_ /_ /\ \/ /
/ / / / > <
/___/___|/_/\_\

pyfiglet使用帮助:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
C:\WINDOWS\system32>pyfiglet
Usage: pyfiglet [options] [text..]
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-f FONT, --font=FONT font to render with (default: standard)
-D DIRECTION, --direction=DIRECTION
set direction text will be formatted in (default:
auto)
-j SIDE, --justify=SIDE
set justification, defaults to print direction
-w COLS, --width=COLS
set terminal width for wrapping/justification
(default: 80)
-r, --reverse shows mirror image of output text
-F, --flip flips rendered output text over
-l, --list_fonts show installed fonts list
-i, --info_font show font's information, use with -f FONT

比较有用的参数也就是-f,-D,-j,-r

下面分别演示:

-f设置输出的字体,-l可以列出支持的所有字体,figlet官网有部分字体的输出预览:http://www.figlet.org/examples.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\WINDOWS\system32>pyfiglet -f doh zzx
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxxxxxxx xxxxxxx
z:::::::::::::::zz:::::::::::::::z x:::::x x:::::x
z::::::::::::::z z::::::::::::::z x:::::x x:::::x
zzzzzzzz::::::z zzzzzzzz::::::z x:::::xx:::::x
z::::::z z::::::z x::::::::::x
z::::::z z::::::z x::::::::x
z::::::z z::::::z x::::::::x
z::::::z z::::::z x::::::::::x
z::::::zzzzzzzz z::::::zzzzzzzz x:::::xx:::::x
z::::::::::::::z z::::::::::::::z x:::::x x:::::x
z:::::::::::::::zz:::::::::::::::z x:::::x x:::::x
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxxxxxxx xxxxxxx

上面所有的就是doh这种字体的输出效果

-D设置图形是从左向右输出还是从右向左输出,可选参数:

  • auto
  • left-to-right
  • right-to-left
1
2
3
4
5
6
7
8
9
10
11
12
13
C:\WINDOWS\system32>pyfiglet -D left-to-right zzx
__________ __
|_ /_ /\ \/ /
/ / / / > <
/___/___|/_/\_\
C:\WINDOWS\system32>pyfiglet -D right-to-left zzx
__ __ ________
\ \/ /|_ /_ /
> < / / / /
/_/\_\/___/___|

-j设置输出方向,可选参数:

  • auto
  • left
  • center
  • right
1
2
3
4
5
6
7
8
9
10
11
12
13
C:\WINDOWS\system32>pyfiglet -j center zzx
__________ __
|_ /_ /\ \/ /
/ / / / > <
/___/___|/_/\_\
C:\WINDOWS\system32>pyfiglet -j right zzx
__________ __
|_ /_ /\ \/ /
/ / / / > <
/___/___|/_/\_\

-r输出字符的镜像图像

1
2
3
4
5
6
C:\WINDOWS\system32>pyfiglet -r Txt
_ _____
_| |_ _|_ _|
|__ \ \/ / | |
_| |> < | |
|__//_/\_\ |_|

使用pyfiglet库

Figlet是主要的class

使用时首先要创建一个Figlet对象,构造方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
class Figlet(object):
"""
Main figlet class.
"""
def __init__(self, font=DEFAULT_FONT, direction='auto', justify='auto',
width=80):
self.font = font
self._direction = direction
self._justify = justify
self.width = width
self.setFont()
self.engine = FigletRenderingEngine(base=self)

参数就不再说明了,看使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pyfiglet import Figlet
f = Figlet(font='doh')
print(f.renderText('zzx'))
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxxxxxxx xxxxxxx
z:::::::::::::::zz:::::::::::::::z x:::::x x:::::x
z::::::::::::::z z::::::::::::::z x:::::x x:::::x
zzzzzzzz::::::z zzzzzzzz::::::z x:::::xx:::::x
z::::::z z::::::z x::::::::::x
z::::::z z::::::z x::::::::x
z::::::z z::::::z x::::::::x
z::::::z z::::::z x::::::::::x
z::::::zzzzzzzz z::::::zzzzzzzz x:::::xx:::::x
z::::::::::::::z z::::::::::::::z x:::::x x:::::x
z:::::::::::::::zz:::::::::::::::z x:::::x x:::::x
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxxxxxxx xxxxxxx

pyfiglet源码__init__.py中还有好几个类,感兴趣的可以去看看:

坚持原创技术分享,您的支持将鼓励我继续创作!