Python ANSI ile karakter biçimleri

05:20 Unknown 0 Comments

  
   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"
   Dikkat etmeniz gereken bir nokta; en sonda default girdiyi vermeniz gerekiyor. Aksi taktirde ekrana yazılan sonraki girdiler kırmızı olarak yazılacaktır. Yani aşağıdaki satırı kullanmanız daha doğru olur.
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. 
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: