簡體   English   中英

使用 Python 詛咒在終端中顯示彩色 ascii 藝術

[英]Display colored ascii art in terminal using Python curses

我想使用 python-curses 在終端(例如 windows cmd)中顯示彩色 ascii 藝術。 我寫了一些非常基本的東西:

import time
import curses
stdscr = curses.initscr()

curses.noecho()
curses.cbreak()
stdscr.keypad(True)

f = open('betterdays.ansi.txt',"r",encoding="utf8")
asciiart = f.read()
for y, line in enumerate(asciiart.splitlines(), 2):
    stdscr.addstr(y, 2, line)


stdscr.refresh()
time.sleep(5)

curses.echo()
curses.nocbreak()
stdscr.keypad(False)

curses.endwin()

這給了我錯誤:

 stdscr.addstr(y, 2, line)
_curses.error: addwstr() returned ERR

我已經看過這個問題,但它並沒有解決我的問題。 有沒有更好的方法來實現這一點? 任何建議都非常感謝。

可以在此處查看/下載 .txt 文件。

這不是“彩色 ASCII”——在過去,我們稱之為 ANSI 藝術。 Curses 不會解釋生成顏色和運動的 ANSI 轉義序列,也不會將它們干凈利落地傳遞到終端,即使它可能(通常會,但取決於終端)使用它們本身來呈現其輸出。

您可以采用兩種基本方法: 如果您在更廣泛的curses 框架內工作並且確實需要這些功能,您可以自己解釋ANSI 序列,並在curses 結構中呈現它們。

更簡單地說,如果您只想將該圖像放在屏幕上,並且如果您知道您的終端已經支持 ANSI,那么請跳過 Curses,並通過標准輸出打印每一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM