如何轻松打印ascii艺术的文字?
我有一个程序可以转储大量的输出,并且我希望有一些输出能够真正脱颖而出 。 一种方法可能是用ascii艺术来呈现重要的文本 ,就像这个web服务所做的那样:
# # ## ##### # # # # # #### # # # # # # ## # # ## # # # # # # # # # # # # # # # # # # ## # ###### ##### # # # # # # # # ### ## ## # # # # # ## # # ## # # # # # # # # # # # # # ####
其他解决scheme可以被着色或粗体输出 。 那么如何在Python中轻松完成这些东西呢?
-
pyfiglet – http://www.figlet.org的纯Python实现;
pip install pyfiglet
-
用于ANSI颜色格式的termcolor – helper函数
pip install termcolor
-
colorama – 多平台支持(Windows)
pip install colorama
import sys from colorama import init init(strip=not sys.stdout.isatty()) # strip colors if stdout is redirected from termcolor import cprint from pyfiglet import figlet_format cprint(figlet_format('missile!', font='starwars'), 'yellow', 'on_red', attrs=['bold'])
例
$ python print-warning.py
$ python print-warning.py | 猫 .___ ___。 __ _______。 _______。 __ __ _______ __ | \ / | | | / | / || | | | | ____ || | | \ / | | | | (----`|(----`| | | | | | __ | | | | \ / | | | | \ \ \ \ | | | | | __ | | | | | | | | | .----)| .----)| | | | `----。| | ____ | __ | | __ | | __ | | __ | | _______ / | _______ / | __ | | _______ || _______ |(__)
PIL提供了一个非常简单的方法。 您可以将文本渲染到ab / w图像,并将该位图转换为stringstream,将黑白像素replace为字符。
import Image, ImageFont, ImageDraw ShowText = 'Python PIL' font = ImageFont.truetype('arialbd.ttf', 15) #load the font size = font.getsize(ShowText) #calc the size of text in pixels image = Image.new('1', size, 1) #create ab/w image draw = ImageDraw.Draw(image) draw.text((0, 0), ShowText, font=font) #render the text to the bitmap for rownum in range(size[1]): #scan the bitmap: # print ' ' for black pixel and # print '#' for white one line = [] for colnum in range(size[0]): if image.getpixel((colnum, rownum)): line.append(' '), else: line.append('#'), print ''.join(line)
它呈现下一个结果:
####### ## ####### ## ## ## ### ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ## ## ## #### ###### #### ###### ## ## ## ## ## ## ## ### ## ### ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ###### ## ## ## ## ## ## ## ## ## ###### ## ## ## ## # ## ## ## ## ## ## ## ## ## ## ## #### ## ## ## ## ## ## ## ## ## ## ## #### ## ## ## ## ## ## ## ## ## ## ## ## ### ## ## #### ## ## ## ## ######## ## ## ### ## ###