Python ile Terminal'i Renklendirme (Colorama) - Mustafa Sabri OĞUZ

Duyurular

10 Haziran 2019 Pazartesi

Python ile Terminal'i Renklendirme (Colorama)

Python'da ile konsol (terminal) arayüzünde geliştirdiğimiz basit programların çıktı yazılarını renklendirerek görselliğini biraz daha artırabiliriz. Bu işlemi Colorama modülü ile tüm işletim sistemlerinde çalışacak şekilde uygulayabiliyoruz.

Kurulum

Colorama, Python'un varsayılan kütüphanesi arasında yer almadığı için kurulumu yapmamız gerekiyor. Bunun için;
python -m pip install colorama
üstte ki pip kurulum komutunu kullanıyoruz.

Kullanımı

Colorama modülünü kullanabilmek için öncelikle projemize dahil etmemiz gerekiyor.
import colorama
Ardından hazır renklendirme sabitlerini kolayca erişip, kullanabilmek için;
from colorama import Fore, Back, Style
Gerekli dosya ve sabitleri projemize dahil ettiğimize göre kullanım için gerekli init() fonksiyonunun çağırılması gerekiyor.
colorama.init()
Böylece Colorama, konsol penceresinde renklendirme işlemlerini gerçekleştirebilmesi için gerekli ayarları tanımlayacak.

Bundan sonra renklendirmenin nasıl gerçekleşeceğini öğrenmemiz gerekiyor.

Fore (Yazı Rengi)

Eğer bir yazıya renk kazandırmak istiyorsanız, bunun için Fore nesnesinin renk sabitini çıktı almamız gerekiyor.
print(Fore.RED)
print("Bu kırmızı bir yazıdır.")
Öncelikle istenilen rengin çıktısını, daha sonra yazı çıktısını yazmanız gerekiyor.

Back (Yazı Arka Plan Rengi)

Eğer yazı arkasının renklerini belirlemek istiyorsanız, bunun için Back nesnesinin renk sabitini çıktı almanız gerekiyor.
print(Back.GREEN)
print("Bu yeşil arka planlı bir yazıdır.")

Fore ve Back (Yazının Rengi ve Arka Plan Rengi)

Eğer yazı ve arka plan rengini aynı satırda değiştirmek istiyorsanız; bu sefer iki nesneyi "+" operatörü ile birlikte çıktı alıyoruz.

print(Fore.YELLOW + Back.BLUE)
print("Bu Sarı Lacivert bir yazıdır.")
Görüldüğü üzere yazı rengi ve arka plan rengini tek seferde değiştirmiş olduk.

Varsayılan Renge Dönme (Sıfırlama)

Eğer bir kaç satırlı bir çalışma yaptıysanız, sizde fark etmiş olmalısınız. Tanımladığımız renkler süreklilik arz ediyor. Bu durumu engelleyebilmek için stili temizlememiz gerekiyor.
print(Fore.RED)
print("Deneme yazısı.")
print("Test yazısı.")
print(Style.RESET_ALL)
print("Bu varsayılan bir yazıdır.")
Colorama'nın temel kullanımı kabaca bu şekildedir. Eğer sıfırlama sabitini kullanmak hoşunuza gitmiyor ise otomatik resetleme yöntemini tercih edebilirsiniz.

Otomatik Stil Sıfırlama (Resetleme)

Otomatik bir şekilde renklerin sıfırlanmasını istiyorsanız: yazımızın başında bahsettiğimiz init() fonksiyonuna autoreset parametresini True olarak vermemiz gerekiyor.
colorama.init(autoreset=True)
Bu yöntem az önce anlattığım kullanım yöntemine göre şöyle bir farklılık içeriyor. Artık renk tanımlarınızı, yazınızla birlikte aynı satıra yazıp, çıktı almanız gerekecek.
print(Fore.RED + Back.YELLOW + " Bu Sarı, Kırmızı bir yazıdır.")
print("Varsayılan yazı örneği.")
Bu kullanım yönteminde sıfırlama sabitini kullanmanıza gerek yoktur. Colorama modülü tanımlanan rengi sadece o satır için geçerli kılmaktadır. İkinci satır kendiliğinden varsayılan stiline geri dönecektir.

Kullanabileceğiniz Renk Seçenekleri


FOREGROUND BACKGROUND
Fore.BLACK Back.BLACK
Fore.RED Back.RED
Fore.GREEN Back.GREEN
Fore.YELLOW Back.YELLOW
Fore.BLUE Back.BLUE
Fore.MAGENTA Back.MAGENTA
Fore.CYAN Back.CYAN
Fore.WHITE Back.WHITE

Örnek Kod

from clearFunction import clear
from time import sleep
import colorama
from colorama import Fore, Back, Style

colorama.init(autoreset=True)

def anaMenu():
    clear()
    print(Fore.RED + "---------------   Proje-1'e Hoşgeldiniz...   ---------------")
    print("Şirketinizde bulunan personellerin" \
        " kaydını tutan bir program.\n")
    print(Back.WHITE + Fore.BLACK + "İşlem Seçenekleri;")
    print("1. Yeni Personel")
    print("2. Personel Bilgisi")
    print("3. Personel Sil")
    print("4. Programı Sonlandır.")

while (True):
    anaMenu()
    veri = input(Fore.CYAN + "Lütfen yapmak istediğiniz işlemi seçin: ")
    if(veri == '4'):
        print(Fore.RED + "Program başarılı bir şekilde sonlandırıldı.")
        break
    else:
        print(Fore.YELLOW + "Bu seçenek henüz hazır değil.")
        print(Fore.YELLOW + "Lütfen daha sonra deneyiniz.")
        sleep(3)
Küçük bir kod örneği ile yazımı burada bitirmek istiyorum. Umarım verdiğim bilgiler işinize yarar. 
Kaynak:
https://pypi.org/project/colorama/

1 yorum: