我想知道是否有人知道如何设置shell中显示的文本的颜色。我注意到'ls'在将信息打印到屏幕上时(在我的Linux机器上)使用了几种不同的颜色,想知道我是否可以在Python中利用它。
答案 0 :(得分:53)
使用Curses或ANSI转义序列。在开始喷射转义序列之前,您应该检查stdout是否为tty。您可以使用sys.stdout.isatty()
执行此操作。这是从我的项目中提取的一个函数,使用ANSI转义序列根据状态打印输出为红色或绿色:
def hilite(string, status, bold):
attr = []
if status:
# green
attr.append('32')
else:
# red
attr.append('31')
if bold:
attr.append('1')
return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
答案 1 :(得分:8)
我刚才描述了非常受欢迎的图书馆clint。除了为终端上的输出着色外,还有更多功能。
顺便说一句,它支持MAC,Linux和Windows终端。
以下是使用它的示例:
安装(在Ubuntu中)
pip install clint
为某些字符串添加颜色
colored.red('red string')
示例:用于颜色输出(django命令样式)
from django.core.management.base import BaseCommand
from clint.textui import colored
class Command(BaseCommand):
args = ''
help = 'Starting my own django long process. Use ' + colored.red('<Ctrl>+c') + ' to break.'
def handle(self, *args, **options):
self.stdout.write('Starting the process (Use ' + colored.red('<Ctrl>+c') + ' to break)..')
# ... Rest of my command code ...
答案 2 :(得分:5)
所有主要颜色代码均在https://www.siafoo.net/snippet/88
处给出答案 3 :(得分:4)
curses
将允许您正确使用颜色作为正在使用的终端类型。
答案 4 :(得分:2)
答案 5 :(得分:-3)
这在PC上很简单:Windows操作系统: 发送os命令来更改文本: import os
os.system('color a') #green text
print 'I like green'
raw_input('do you?')