2012-07-08 73 views
8

我想爲我們的開發人員的命令行工具添加一個復活節彩蛋,如果某個日期匹配,它將迎合其用戶。基本上,我正在尋找:Python中的文本到ASCII藝術生成器

>>> print big_text("Happy\nBirthday")                     

    .     _________ _...._ _________ _...._      
.'|     \  |.'  '-. \  |.'  '-. .-.   .- 
< |     \  .'```'. '.\  .'```'. '.\ \  // 
| |    __  \  |  \  \\  |  \  \\ \ // 
| | .'''-. .:--.'.  |  |  | | |  |  | | \ \ // 
| |/.'''. \/| \ | |  \ / . |  \ / . \ \//  
|/ | | `" __ | | |  |\`'-.-' .' |  |\`'-.-' .'  \ `/ 
| |  | | .'.''| | |  | '-....-'`  |  | '-....-'`  \/  
| |  | |// | |_ .'  '.    .'  '.    //  
| '. | '.\ \._,\ '/'-----------'   '-----------'   |`-'/  
'---' '---'`--' `"     _______      '..'   
/|  .--.     .  \ ___ `'.        
||  |__|     .'|   ' |--.\ \   .-.   .-  
||  .--..-,.--.  .| < |   | | \ '   \ \  //  
|| __ | || .-. | .' |_ | |   | |  | ' __ \ \ //  
||/'__ '. | || | | | .'  || | .'''-. | |  | | .:--.'. \ \ //  
|:/` '. '| || | | |'--. .-'| |/.'''. \ | |  ' .'/ | \ | \ \//   
||  | || || | '- | | |/ | | | |___.' /' `" __ | | \ `/  
||\ /'|__|| |  | | | |  | |/_______.'/ .'.''| |  \/   
|/\'..'/ | |  | '.'| |  | |\_______|/ // | |_ //   
' `'-'`  |_|  | /| '. | '.   \ \._,\ '/|`-'/   
         `'-' '---' '---'   `--' `" '..'    

是否有包裝?

Credit where credit is due

+0

你是怎麼產生這個例子的? – Triptych 2012-07-08 13:31:15

+1

@Triptych:查看帖子底部的鏈接? – 2012-07-08 13:31:40

+0

相關:[是否有一個python庫,可以輕鬆打印ascii藝術文字?](http://stackoverflow.com/q/9632995/4279) – jfs 2012-10-25 20:20:15

回答

10

您在此鏈接的TAAG應用程序的作者。 TAAG中的大多數字體都是FIGlet字體(figlet.org)。 FIGlet是一個命令行的Linux應用程序,但FIGlet驅動程序已用多種語言編寫。我公佈我在JavaScript中寫到這裏的司機:

https://github.com/patorjk/figlet.js

雖然這將需要被移植到Python工作。我做了FIGlet Python庫搜索,發現這個:

https://github.com/pwaller/pyfiglet

我不知道是否能正常工作,或有多少它實現了規範的,但它看起來相當完整。

2

我認爲這個問題是有點過了堆棧 溢出的話題,但你可以嘗試谷歌「ASCII藝術的Python」和得到的東西,如:http://www.youtube.com/watch?v=NEWuZfTNoJE

OR你可以嘗試自己做,這裏是一個大綱:

rows = 13 # Maximum height of character 

# 0 is a , 1 is b and so on... 
alphabeth = [[ 
r'''   ''', 
r'''   ''', 
r'''   ''', 
r'''   ''', 
r'''   ''', 
r''' __  ''', 
r''' .:--.'. ''', 
r'''/ | \ | ''', 
r'''`" __ | | ''', 
r''' .'.''| | ''', 
r'''// | |_ ''', 
r'''\ \._,\ '/ ''', 
r''' `--' `" ''']] 

text = raw_input('Enter text:\n') 
c = map(lambda x: ord(x)-ord('a'),text) 
for i in range(rows): 
    for j in c: 
     print alphabeth[j][i], 
    print ""