Django kaynak kodunu geziyordum ve bu işlevi gördü:ANSI grafik kodlar ve Python
def colorize(text='', opts=(), **kwargs):
"""
Returns your text, enclosed in ANSI graphics codes.
Depends on the keyword arguments 'fg' and 'bg', and the contents of
the opts tuple/list.
Returns the RESET code if no parameters are given.
Valid colors:
'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'
Valid options:
'bold'
'underscore'
'blink'
'reverse'
'conceal'
'noreset' - string will not be auto-terminated with the RESET code
Examples:
colorize('hello', fg='red', bg='blue', opts=('blink',))
colorize()
colorize('goodbye', opts=('underscore',))
print colorize('first line', fg='red', opts=('noreset',))
print 'this should be red too'
print colorize('and so should this')
print 'this should not be red'
"""
code_list = []
if text == '' and len(opts) == 1 and opts[0] == 'reset':
return '\x1b[%sm' % RESET
for k, v in kwargs.iteritems():
if k == 'fg':
code_list.append(foreground[v])
elif k == 'bg':
code_list.append(background[v])
for o in opts:
if o in opt_dict:
code_list.append(opt_dict[o])
if 'noreset' not in opts:
text = text + '\x1b[%sm' % RESET
return ('\x1b[%sm' % ';'.join(code_list)) + text
ben bağlam dışına çıkarıldı ve sadece denemek için başka bir dosyaya yerleştirilir şey bu kadar mı ilettiğim metni renklendirmiyor gibi görünüyor. Doğru anlamadım ama terminalin gerçek renklere dönüştüğü ANSI grafik kodları ile çevrelenmiş olan metni geri göndermemesi gerekiyordu.
Tüm çağrı örneklerini denedim, ancak yalnızca metin olarak belirttiğim argümanı döndürdüm.
Ubuntu kullanıyorum, bu yüzden terminalin renkleri desteklemesi gerektiğini düşünüyorum.
Hatırlarsanız mü 'önalan', 'arka plan' ve 'opt_dict' kopyalamak için? Ayrıca, "küfürler". –
Evet yaptım, küfürlere bakacağım, teşekkürler :) – gmunk