İyi geceler arkadaşlar. Python programlama dilinde çok yeniyim ve dili Yazbel belgeleri üzerinden öğreniyorum. Çoğunlukla örnek programlar yazıyorum ama yine de bazen terminal çıktıları çok karışık oluyor ve bunları temizleme ihtiyacı duyuyorum.
Bu çıktıları her döngüde temizlemek için nasıl bi kod yazmam gerekiyor.
Çoğu kişinin “Daha bu konular için çok erken, zamanı gelince bunu da öğreneceksin” diyeceğini biliyorum ama, terminal çıktılarını renklendirme konusunu Yazbel belgelerinde görmemiş olmama rağmen araştırıp kavradım. Terminali temizleme işleminde zorlanacağımı düşünmüyorum. Deneyimli kullanıcılar yardım ederse çok sevinirim.
Mesela her yeni kullanıcı ekleme işleminde temizlemek için kod yapısını nasıl değiştirmem gerekiyor.
("\n"*30) gibi bir öneride bulunmazsanız çok memnun olurum
Ve ayrıca konuyla ilgilenen arkadaşların, kodlardaki mantıkta sorun olup olmadığına bakmasını da rica ediyorum. Mesela şunu böyle değil de şöyle yapsan daha verimli olur diyebileceğiniz durum varsa lütfen bunu bana söyleyin
Öncelikle forumdaki ilk gönderin için tebrik ederim ve aramıza hoşgeldin.
Anlatacaklarım windows işletim sistemi içindir.
Çok basit bir 2 satırlık kod ile yapmak istediğin işlemi öğrenmiş olacaksın. cmd üzerinde kullanabileceğin CLS kodu var. Bunu system("") içerisine çalışmasını istediğimiz satırda göndererek gerçekleştirebliriz.
Kodun çalışabilmesi için öncelikle en üste şunu yazmamız lazım;
from os import system
Ardından şunu yazarak çalıştırabiliriz.
system("cls")
Böylelikle bunu gördüğü her yerde temizleyecektir.
Küçük bir ekleme yapmak istiyorum. system('cls') komutu sadece Windows’da çalışır. Bu komutu system('cls||clear') olarak değiştirirseniz, Mac OS ve Linux kullanan arkadaşlar da kodunuzu deneyebilir.
Windows’un dandik cmd.exe’sinden bahsediyorsak mesela, yanlis hatirlamiyorsam ozel WIN32 API fonksiyonlari vardi bu tur meta-isleri yapmak icin. Cross-platform bir kutuphane bulursan kullan, yoksa ugrasma; kullaniciya soyle, insanlar icin tasarlanmis bir terminal emulatoru kullansin.
Onun disinda ANSI emulasyonu olan herhangi bir terminal’den bahsediyorsak (cmd.exe disindaki butun terminaller, DOS/Windows 95/98’deki COMMAND.COM bile dahil) ANSI kontrol sekanslarini kullanabilirsin.
print("\033[2J")
print("\033[31mkirmizi\033[0m")
Bu arada benim sistem “clear” icin 3 komut kullanmis:
Kodun hepsini görmediğim için programın işleyişiyle ilgili yorum yapamam ama üstteki giriş değişkenine değer verirken her satırda kaçış dizisi ve \n kullanmak yerine üç tırnak kullanabilirsiniz.
var = 100
print(f"""BU
ÇOK
SATIRLI
BİR
F-STRİNG
VAR:
{var}
""")
ANSI destegi yok
Resize edilmiyor (Windows 10’da duzelteceklerdi, ne oldu bilmiyorum)
Tab destegi yok
Copy/paste’i bozuk
Input veya output geldiginde scroll et/etme ayari yok, inputu veya outputu durdur/devam ettir ayari yok
Font/renk ayari kisitli
Transparanlik, arkaplan resmi gibi kozmetik ayarlari yok
shell olarak:
Alias destegi yok
History tutamiyor
Tab completion icler acisi
Built-in’leri kotu (which yok, pushd/popd… varmis!)
Glob (filename completion) yok
Scripting dili primitif, fonksiyon bile yazilmiyor
Arkaplanda is calistirma, is kontrolu yok
Ayarlari yok, konfigure edilmiyor (gerci hic bir ozelligi yok, neyi konfigure edeceksin?)
Aslinda 3rd party terminal programlariyla ilk listedeki sorunlarin hepsi cozulebiliyor ama insan “bana daha iyi bir terminal lazim” bilincine geldikten cok kisa bir sure sonra Linux’a geciyor.
Gecmeyen tek grup Microsoft calisanlari, onlar da PS, WSL filan icat ediyorlar
Bana yakisikli bir terminal soyleyin. Gnome daki cok güzel olsa da beni kesmemeye basladi. Artik resmen terminal bagimlisi oldum (Nautilus kullanmiyorum gerisini dusunun)