Python'da Terminali Her Döngüde Temizlemek İçin Ne Yapabilirim?

İ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

1 Beğeni

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

1 Beğeni

Ö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.

1 Beğeni

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.

3 Beğeni

cevabınız için teşekkür ederim. <3

Hangi terminal?

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:

$ tput clear | xxd
00000000: 1b 5b 48 1b 5b 32 4a 1b 5b 33 4a                 .[H.[2J.[3J

Olur ama kodu yollaman lazim.

Taslasmis egitim sistemlerinin bir kalintisi o laf; gececegin yerlerin onceden belirlendigini ve degismeyecegini varsayiyor.

3 Beğeni

Cevabın için çok teşekkür ederim. Sorunum çözüldü

Hepinize teşekkürler beyler. Çok yardımcı oldunuz :slight_smile:

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}

""")

windows bu kadar lanet kötü bir şey mi ya :smiley: ben iyice soğumaya başladım.

Dostum, bir kur, biraz ilgilen, sonra kendin karar ver. Bana soracak olursan, bence de tartışmasız bash > cmd.exe.

cmd.exe, terminal emulatoru olarak:

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?)

linux ws windows ve kazanan linux oldu. hadi kuralım şunu cevaplar için teşekkürler

1 Beğeni

Düzeldi.

Evet, geçenlerde windows console diye bir şey çıkardılar bunun için. Windows kullanıcıları için idare eder. Gerçi onu da elle yüklemek lazım.

1 Beğeni

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 :slight_smile:

Tabii, zaten Linux’un çoğu dağıtımı yazılımcıların kendileri için geliştirdiği bir işletim sistemi ortaya koyuyor.

1 Beğeni

Bana yakisikli bir terminal soyleyin. Gnome daki cok güzel olsa da beni kesmemeye basladi. Artik resmen terminal bagimlisi oldum :relaxed: (Nautilus kullanmiyorum gerisini dusunun)

Neden kesmedigini bilmeden bir sey soylemek zor :slight_smile:

Internette cok yakisikli terminaller goruyorum ve benimki bana cirkin geliyor. Herhalde gelistirilmis os dan bagimsiz terminaller de vardir?

Bak surada asagida var bi tane.

Dediklerin terminalden cok shell’in marifeti gibi duruyor.

oh my zsh’a bakmak isteyebilirsin.