Python:具有多个变量的颜色输出

Python: color output with multiple variables

我正在尝试在终端上打印 Python 输出。

如果我必须打印一个短语,一切正常,但当该短语包含变量时,问题就开始了。

这是代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import datetime
from colorama import init
init(autoreset=True)
from fabric.colors import red, green

latitude =  36.02866
longitude = 70.77258

print ("3[92m" + 'I know I can be green' + "3[0m")
print ("3[92m" +'I want the whole line to be green or red',latitude,',',longitude, 'at', datetime.datetime.now(), "3[0m")
print ("3[91m" + 'I know I can be red' + "3[0m")
print ('automatically back to default color again')

如您所见,只有第二个短语的第一部分是彩色的。

但是我需要给整个短语上色!

这应该通过格式化字符串来工作,而不是为函数提供新参数 print() :

print ("3[92m" +'I want the whole line to be green or red {0}, {1} at {2}'.format(
    latitude, longitude, datetime.datetime.now())+ "3[0m")
print ("3[91m" + 'I know I can be red' + "3[0m")

您必须将其解析为字符串。这样做,它应该会很好。至少在我尝试的时候:

variable = 3
print ('%sI know I can be green var: %s %s' % ("3[92m", variable,"3[0m"))

问候

尝试 fabric.colors,这是一个很好的解决方案:

from fabric.colors import green, yellow, red

print(green("Id: %s Type: %s" % (instance.id,instance.instance_type)))