Python ANSI ile karakter biçimleri
Birkaç gündür Python üzerinde çalışmalar yapıyorum, yapısı diğer dillere göre daha kolay olduğu için diğer diller üzerinde yapmaya çalıştığım (ama tam olarak yapamadığım) bir kaç fikiri Python üzerinde daha rahat bir şekilde gerçekleştirebildim. Özellikle SQLite ile çok uyumlu olduğunu düşünüyorum, herhangi bir sorun çıkarmadı kendisi sağolsun.
Bu entryde ekrana yazdırdığımız girdileri yada verileri ANSI karakter kodları ile renkli yada biçimsel olarak yazdıracağız. Biçimselden kastım; kalın (bold), altıçizili (underline) ve eğik (italic) yazı tipleri. Öncelikle ANSI karakter kodlarını bilmemiz gerekiyor, onlara bu siteden ulaşabilirsiniz: http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html
Tabii burada sadece renk ve biçimsel kodlar verilmiş, özel karakterlere yer verilmemiş. Öncelikle nasıl kullanabileceğimize gelirsek; \033 bizim yazı biçimin özelliklerini taşıyon kısım. Tabii sitede o belirtilmiyor, örnek olarak \033[34m mavi rengini belirtiyor. Sondaki [34m renk kodumuzu, baştaki \033 ise yazı biçimine uygulanacak olan biçimsel özellikleri taşıyor.
Örnek olarak aşağıdaki satır Merhaba girdisini kırmızı olarak yazdıracaktır.
print '\033[31m' + "Merhaba"
print '\033[31m' + "Merhaba" + '\033[00m'
Tabii renk kodlarıyla bu şekilde tek tek uğraşmaktansa bunları bir sınıf olarak belirtebiliriz. Hazırladığım aşağıdaki sınıfı kullanabilirsiniz.
class bgrenk:
DEF = '\033[00m'
KIRMIZI = '\033[31m'
YESIL ='\033[32m'
SARI ='\033[33m'
MAVI = '\033[34m'
MOR = '\033[35m'
MAVIMSI = '\033[36m'
KALIN = '\033[01m'
EGIK = '\033[03m'
ACIZILI = '\033[04m'
Sınıfı tanımladıktan sonra renklendirmeyi aşağıdaki gibi kullanabilirsiniz.
DEF = '\033[00m'
KIRMIZI = '\033[31m'
YESIL ='\033[32m'
SARI ='\033[33m'
MAVI = '\033[34m'
MOR = '\033[35m'
MAVIMSI = '\033[36m'
KALIN = '\033[01m'
EGIK = '\033[03m'
ACIZILI = '\033[04m'
print bgrenk.KIRMIZI + "Merhaba" + bgrenk.DEF
Tabii bununlada uğraşmayıp fonksiyon haline de getirebilirsiniz, o da artık size kalmış. İpin ucunu verdim ben sadece. :)
0 yorum: