在python 3.3.2中更改shell打印颜色

时间:2013-11-01 16:30:44

标签: python shell python-3.x colors

有没有办法在Linux和Windows shell中改变python 3.3.2中的shell打印颜色?我已经阅读了所有其他主题,但没有一个使用此版本,或者我应该导入一个模块。例如,我想用纯python模块这样打印:

enter image description here

。我用它们两个!我说他们都没有在python 3.3上工作: https://stackoverflow.com/questions/287871/print-in-terminal-with-colors-using-pytho n的

请不要说这是一个重复的问题,因为这些答案都没有在python 3.3.2中工作,我想使用默认模块来做那个我应该在python上安装的colorama!

4 个答案:

答案 0 :(得分:3)

这些适用于Linux和Mac,但不适用于Windows。每当我需要为输出着色时,我都会引用它们。

第一部分展示了如何改变颜色。

# snippet found at http://stackoverflow.com/questions/287871/print-in-terminal-with-colors-using-python

class bcolors:
    WARNING = '\033[95m'
    ENDC = '\033[0m'

print(bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC)

第二个显示每个值在您的环境中的显示方式。

for i in range(0, 128):
    print("\033[%imThis is text!!\t\t( \\033[%im )\033[0m" % (i, i))

答案 1 :(得分:1)

根据https://pypi.python.org/pypi/colorama的说明,

  

ANSI转义字符序列长期以来一直用于在Unix和Mac上生成彩色终端文本和光标定位。 Colorama通过包装标准输出,剥离它找到的ANSI序列(在输出中显示为gobbledygook),然后将它们转换为适当的win32调用来修改终端的状态,也可以在Windows上运行。

听起来自己做这件事并不是一件非常重要的工作。

那就是说,他们也提到了这个:

  

另一种方法是在Windows机器上安装'ansi.sys',它为终端中运行的所有应用程序提供相同的行为。 Colorama适用于不容易的情况

如果ansi.sys是一个选项,这些链接可能会对您有所帮助:

答案 2 :(得分:1)

要更改颜色方案,请编辑config.txt中的[颜色]部分。但是,你不能在程序中这样做 - 即使你可能会令人厌恶的低效率。您无需安装任何新模块。您可以通过subprocess执行此操作,这是Python附带的一个模块。

类似的东西:

from subprocess import call

call('color a', shell=True) #this sets the color to light green
print('The quick brown fox jumps over the lazy dog.')

这适用于Windows,您可以根据操作系统轻松更改调用的命令。对于您的程序,您可以将颜色放在for循环中,并使用print语句中的消息进行更改。

注意,这仅适用于从文件位置或命令行运行它的情况。在IDLE中运行它时不起作用。希望我帮忙!

编辑:您可以找到颜色列表here。语法为:color 'background ID''text ID'

这将允许您执行以下操作:

import time
from subprocess import call

for color in('a', 'e', 'c'): #cycles through different colours
    call('cls', shell=True) #clears the screen
    call('color ' + color, shell=True)
    print('The quick brown fox jumps over the lazy dog.')
    time.sleep(1)

input("\nPress enter to exit. ")

由此,您可以修改代码以使用您选择的颜色。不幸的是,绝对没有办法在屏幕上同时拥有所有颜色。为此你 DO 需要外部模块,我很害怕。

答案 3 :(得分:0)

Python中的颜色

很好地打印文本或使用python设置样式


# the ANSI codes are stored in variables, making them easier to use
black = "\033[0;30m"
red = "\033[0;31m"
green = "\033[0;32m"
yellow = "\033[0;33m"
blue = "\033[0;34m"
magenta = "\033[0;35m"
cyan = "\033[0;36m"
white = "\033[0;37m"
bright_black = "\033[0;90m"
bright_red = "\033[0;91m"
bright_green = "\033[0;92m"
bright_yellow = "\033[0;93m"
bright_blue = "\033[0;94m"
bright_magenta = "\033[0;95m"
bright_cyan = "\033[0;96m"
bright_white = "\033[0;97m"

print(black + "Hello world")
print(red + "Hello world")
print(green + "Hello world")
print(blue + "Hello world")
print(yellow + "Hello world")
print(magenta + "Hello world")
print(cyan + "Hello world")
print(bright_black + "Hello world")
print(bright_red + "Hello world")
print(bright_green + "Hello world")
print(bright_blue + "Hello world")
print(bright_cyan + "Hello world")
print(bright_magenta + "Hello world")
print(bright_yellow + "Hello world")

输出

View : Colored output