如何解决使用Python curses在终端中显示彩色的ascii艺术
我想使用python-curses在终端上显示彩色的ascii艺术(例如Windows cmd)。我写了一些非常基本的东西:
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()
whihc给了我错误:
stdscr.addstr(y,line)
_curses.error: addwstr() returned ERR
我已经看过this question,但不能解决我的问题。有没有更好的方法可以做到这一点?任何建议都将不胜感激。
解决方法
这不是“彩色ASCII”-在过去,我们将其称为ANSI艺术。 Curses不会解释产生颜色和运动的ANSI转义序列,也不会将它们干净地传递到终端,即使它可能(通常会,但是取决于终端)使用它们本身来呈现其输出。 / p>
您可以采用两种基本方法:如果您在更广泛的curses框架中工作并且确实想要这些功能,则可以自己解释ANSI序列,并将其呈现为curses结构。
更简单地说,如果您只想将该图像显示在屏幕上,并且知道终端已经支持ANSI,则跳过curses,仅通过标准输出打印每一行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。