Python renkli yazmak

CinarYilmaz

Hectopat
Katılım
27 Ağustos 2020
Mesajlar
2.180
Çözümler
18
Yer
Istanbul
Python öğreniyorum ve renkli yazı yazmaya çalışıyorum. Aşağıdaki kodu kullandığımda PyCharm'da işe yarıyor ama dosyayı direkt açtığımda (C:\Windows\py.exe ile açıyor) renkli olmuyor, çorba gibi. Nasıl direkt açıldığında da renkli yazmasını sağlayabilirim?
Python:
import socket
import getpass


class renkler:
    PEMBE = '\033[95m'
    MAVI = '\033[94m'
    CAMGOBEGI = '\033[96m'
    YESIL = '\033[92m'
    SARI = '\033[93m'
    KIRMIZI = '\033[91m'
    DUZ = '\033[0m'
    KALIN = '\033[1m'
    ALTICIZILI = '\033[4m'


class lang:
    class tr:
        unknown_command = "Bilinmeyen komut."


dizin = "C:\\"
yetki = "$"
if dizin == "C:\\":
    goruntulenen_dizin = "~"
else:
    goruntulenen_dizin = dizin
run = True

commands = ["exit"]

while run:
    command = input(
        renkler.YESIL + getpass.getuser() + "@" + socket.gethostname() + renkler.DUZ + ":" + renkler.CAMGOBEGI + dizin + renkler.DUZ + yetki + " ")
    if command not in commands:
        print(lang.tr.unknown_command)
    if command == "exit":
        exit(0)

 

Bu makale işinizi görür: Python ile Terminal'i Renklendirme (Colorama)
 
OS modülünü import et. Fonksiyon oluştur, daha sonra hangi sistemde program çalışacaksa onun terminal renklendirme kodundan yararlan. Windows için color gibi. Her seferinde o fonksiyonu çağırıp keyfine bak.
Hocam, tam olarak anlamadım. Ben tek bir string olarak yazdırıyorum (input fonksiyonunun içinde) ve bir satırda birden fazla renk var. Nasıl öyle yapacağım? Örnek olarak aa tarzında bir şey yazan bir kod paylaşabilir misiniz?
 
@CinarYilmaz
Benim dediğim şekilde sanırım dediğini yapamazsın gibi. Yine de denemek lazım, oluruna bakmak lazım. Şimdi mobildeyim o yüzden kodları atamıyorum maalesef. Bilgisayar başına geçince bir bakayım. Colorama işini görmedi mi?
 



Sty kütüphanesi ile basitçe yapılabiliyor. Ancak Powershell ve CMD renk kodlarını diğer CLI'lar gibi işlemiyor.

Python:
from sty import fg

jelly = fg.red + 'Jelly'
beanci = fg.green + 'Beanci'
print(jelly,beanci)
 
Hocam;
Yeni kodum:
Python:
import socket
import getpass
from sty import fg

class lang:
    class tr:
        unknown_command = "Bilinmeyen komut."


dizin = "C:\\"
yetki = "$"
if dizin == "C:\\":
    goruntulenen_dizin = "~"
else:
    goruntulenen_dizin = dizin
run = True

commands = ["exit"]

while run:
    command = input(
        fg.green + getpass.getuser() + "@" + socket.gethostname() + fg.white + ":" + fg.cyan + dizin + fg.white + yetki + " ")
    if command not in commands:
        print(lang.tr.unknown_command)
    if command == "exit":
        exit(0)
PyCharm'da çalışıyor ama:

Çift tıklayarak açınca çalışmıyor:

Bu da aynı şeyi yapıyor sanırım.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…