Python | change text color in shell
本问题已经有最佳答案,请猛点这里访问。
我想知道是否有人知道如何设置显示在shell中的文本的颜色。我注意到"ls"在将信息打印到屏幕(在我的Linux设备上)时使用了几种不同的颜色,我想知道是否可以在python中利用这一点。
使用curses或ansi转义序列。在开始执行转义序列之前,应该检查stdout是否是tty。你可以用
1 2 3 4 5 6 7 8 9 10 11 | 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) |
我刚刚描述了非常受欢迎的图书馆克林特。它除了在终端上对输出着色之外还有更多的特性。
顺便说一下,它支持Mac、Linux和Windows终端。
下面是使用它的示例:
安装(在Ubuntu中)
1 | pip install clint |
为某些字符串添加颜色
1 | colored.red('red string') |
示例:用于颜色输出(django命令样式)
1 2 3 4 5 6 7 8 9 10 11 | 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 ... |
所有主要的颜色代码都在https://www.siafoo.net/snippet/88上给出。
请访问http://www.pixelbeat.org/talks/python/ls.py
在PC上这么简单:Windows操作系统:向操作系统发送命令以更改文本:导入操作系统
1 2 3 | os.system('color a') #green text print 'I like green' raw_input('do you?') |