Konsol çıktısını aynı yere yazmak, geliştiriciler için Python uygulamalarıyla çalışırken, özellikle komut satırında kullanıcı arayüzleri geliştirirken, ilerleme göstergeleri oluştururken ve konsol verilerini gerçek zamanlı olarak güncellerken yararlı bir teknik olabilir. Bu makalede, konsol çıktısının üzerine yazmaya yönelik bir çözüm tartışılacak, kod adım adım açıklanacak ve bu görevi mümkün kılan belirli kitaplıklar ve yerleşik Python işlevleri ayrıntılı olarak ele alınacaktır.
Bunu başarmak için, büyük ölçüde metin tabanlı kullanıcı arayüzlerinin kullanımına dayanan terminal tabanlı uygulamalar oluşturmak için özel olarak tasarlanmış ünlü Python kütüphanesi “curses”ı kullanabiliriz. Ancak basitlik ve anlaşılırlık amacıyla konsol çıktılarının üzerine yazmak için Python'un yerleşik “sys” ve “time” modüllerini kullanacağız.
Python'da Konsol Çıktısının Üzerine Yazma
Ana fikir, kullanmaktır. sys.stdout.write() ile birlikte aynı satırda yazdırmamızı sağlayan fonksiyon satırbaşı karakteri (“r”) satırın başına dönerek çıktının üzerine yazmamızı sağlar.
Python kullanarak konsol çıktısının üzerine yazmanın bir örneği:
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
Kodun Adım Adım Açıklaması
1. Öncelikle gerekli modülleri içe aktarın:
import time import sys
The zaman modül yinelemeler arasına gecikme eklemek için kullanılacaktır ve sys Modül konsola çıktı yazmak için kullanılacaktır.
2. Daha sonra, bir ilerleme sayacını simüle ederek, bir dizi sayı üzerinde yineleme yapmak için bir döngü oluşturun:
for i in range(10):
Bu döngü 0'dan 9'a kadar yinelenir ve etkili bir şekilde on kez çalışır.
3. Döngünün içinde sys.stdout.write() Geçerli yineleme numarasını bir etiketle birlikte yazdırma işlevi:
sys.stdout.write("rStep: %d" % i)
“r” karakteri, satırın başlangıcına sıfırlama işlevi gören ve bir sonraki çıktının mevcut çıktının üzerine yazılmasına olanak tanıyan satırbaşıdır.
4. Kullandığınızdan emin olun sys.stdout.flush() konsola yazdıktan sonra:
sys.stdout.flush()
Flush() işlevi dahili arabelleği temizler ve çıktının hemen görüntülenmesini sağlar.
5. Son olarak, düğmeyi kullanarak bir gecikme ekleyin. Uyku zamanı() işlevi:
time.sleep(1)
Bu duraklama bir saniye sürecek ve çıktının üzerine yazıldığını gözlemlemeyi kolaylaştıracaktır.
Artık her yinelemede konsol çıktısının üzerine nasıl yazıldığını görebilirsiniz.
“sys” Kütüphanesine Genel Bakış
The sys kitaplık, yorumlayıcının dahili bileşenlerine ve sisteme özgü çeşitli parametrelere erişim sağlayan güçlü bir yerleşik Python modülüdür. Bu yazıda kullanmaya odaklandık. sys.stdout.write() ve sys.stdout.flush() Konsol çıktısının üzerine yazma işlevleri. Ancak "sys" kütüphanesi, komut satırı argümanları, bayt sırası, istisnalar ve önceden tanımlanmış yollar gibi birçok başka işlevsellik sunar.
“Zaman” Kütüphanesine Genel Bakış
The zaman kütüphane, zaman manipülasyonu ve işleme ile ilgili çeşitli işlevler sunan başka bir yerleşik Python modülüdür. Örneğimizde, şunu kullandık: Uyku zamanı() yinelemeler arasında bir gecikme yaratma işlevi. "Time" kütüphanesi ayrıca yürütme süresini ölçmek, zaman formatları arasında dönüştürme yapmak ve geçerli saati elde etmek için başka araçlar da sağlar. Bu modül, Python uygulamalarında zamanla ilgili işlevlerle veya zamanlama görevleriyle çalışan geliştiriciler için gereklidir.