关于打印:在python 3.2中更改单个打印行的颜色?

Change color of individual print line in Python 3.2?

本问题已经有最佳答案,请猛点这里访问。

我正在学习python 3.2中的一个基于文本的小冒险,以便练习和熟悉该语言。不管怎样,我希望这样,当某些操作发生时,打印文本的颜色会发生变化。我该怎么做呢?

例如,我希望出现的第一个文本是:

1
2
3
4
5
6
7
if 'strength' in uniqueskill.lower():
time.sleep(3)
print('As you are a Warrior, I shall supply you with the most basic tools every Warrior needs.')
time.sleep(3)
print('A sword and shield.')
time.sleep(1)
print('You have gained A SWORD AND SHIELD!')


Colorama是一个非常好的跨平台模块,用于以不同颜色打印到终端/命令行。

例子:

1
2
3
4
5
6
7
8
9
10
import colorama
from colorama import Fore, Back, Style

colorama.init()

text ="The quick brown fox jumps over the lazy dog"

print(Fore.RED + text)
print(Back.GREEN + text + Style.RESET_ALL)
print(text)

给你:

enter image description here


您没有指定平台,这在这里非常重要,因为大多数将颜色文本输出到控制台的方法都是平台特定的。例如,Python附带的Curses库仅限于Unix,而ANSI代码不再适用于新版本的Windows。我能想到的最跨平台的解决方案是在Windows机器上安装并使用Curses的Windows版本。

下面是一个使用颜色和诅咒的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import curses

# initialize curses
stdscr = curses.initscr()
curses.start_color()

# initialize color #1 to Blue with Cyan background
curses.init_pair(1, curses.COLOR_BLUE, curses.COLOR_CYAN)

stdscr.addstr('A sword and a shield.', curses.color_pair(1))
stdscr.refresh()

# finalize curses
curses.endwin()

请注意,诅咒比颜色更复杂。您可以使用它在控制台屏幕上定义几个窗口,使用绝对或相对坐标定位文本,操作键盘输入等。您可以在这里找到一个教程:http://docs.python.org/dev/howto/curses.html