2

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

在此处输入图像描述

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

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

4

4 回答 4

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))
于 2013-11-01T18:09:06.330 回答
1

要更改配色方案,请编辑 中的 [颜色] 部分config.txt。然而,你不能在一个程序中这样做——即使你可以这样做,它的效率也会低得令人作呕。您无需安装任何新模块。你可以通过subprocessPython 自带的一个模块来做到这一点。

就像是:

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 中运行它时,它将不起作用。希望我有所帮助!

编辑:您可以在此处找到颜色列表。语法是: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. ")

从那里,您可以修改代码以使用您选择的颜色。不幸的是,绝对不可能同时在屏幕上显示所有颜色。为此,恐怕您确实需要外部模块

于 2013-11-01T16:57:30.240 回答
1

根据https://pypi.python.org/pypi/colorama的描述,

ANSI 转义字符序列长期以来一直用于在 Unix 和 Mac 上生成彩色终端文本和光标定位。Colorama 也可以在 Windows 上进行这项工作,方法是包装 stdout、剥离它找到的 ANSI 序列(否则在您的输出中显示为 gobbledygook),并将它们转换为适当的 win32 调用以修改终端的状态。

听起来自己做这件事是一项不平凡的工作。

也就是说,他们还提到了这一点:

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

如果ansi.sys可以选择,这些链接可能会为您提供帮助:

于 2013-11-01T16:43:23.090 回答
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")

输出

查看:彩色输出

于 2020-09-20T07:49:21.057 回答