Pisanje izlaza konzole na istom mjestu može biti korisna tehnika za programere kada rade sa Python aplikacijama, posebno kada razvijaju korisnička sučelja u komandnoj liniji, kreiraju indikatore napretka i ažuriraju podatke konzole u realnom vremenu. Ovaj članak će raspravljati o rješenju za prepisivanje izlaza konzole, objasniti kod korak po korak i zaroniti u određene biblioteke i ugrađene Python funkcije koje čine ovaj zadatak mogućim.
Da bismo to postigli, možemo koristiti čuvenu Python biblioteku „prokletstva“ koja je posebno dizajnirana za kreiranje terminalskih aplikacija koje uvelike zavise od upotrebe tekstualnih korisničkih interfejsa. Međutim, u svrhu jednostavnosti i lakšeg razumijevanja, koristićemo Python-ove ugrađene module “sys” i “time” za prepisivanje izlaza konzole.
Prepisivanje izlaza konzole u Python-u
Glavna ideja je korištenje sys.stdout.write() funkcija, koja nam omogućava da ispisujemo u istom redu, zajedno sa povrat kočije znak (“r”) za povratak na početak reda, što nam zapravo omogućava da prepišemo izlaz.
Evo primjera prepisivanja izlaza konzole koristeći Python:
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
Korak po korak objašnjenje koda
1. Prvo uvezite potrebne module:
import time import sys
The vrijeme modul će se koristiti za dodavanje kašnjenja između iteracija, i sys modul će se koristiti za pisanje izlaza na konzolu.
2. Zatim kreirajte petlju za ponavljanje niza brojeva, simulirajući brojač napretka:
for i in range(10):
Ova petlja se ponavlja od 0 do 9, efektivno radi deset puta.
3. Unutar petlje koristite sys.stdout.write() funkcija za ispis trenutnog broja iteracije zajedno s etiketom:
sys.stdout.write("rStep: %d" % i)
Znak “r” je povratni znak koji djeluje kao vraćanje na početak reda, omogućavajući sljedećem izlazu da prepiše trenutni.
4. Osigurajte korištenje sys.stdout.flush() nakon pisanja na konzolu:
sys.stdout.flush()
Funkcija flush() briše interni bafer i osigurava da se izlaz odmah prikaže.
5. Na kraju, dodajte odgodu pomoću time.sleep() funkcija:
time.sleep(1)
Ova pauza će trajati jednu sekundu, što olakšava posmatranje izlaza koji se prepisuje.
Sada možete vidjeti kako se izlaz konzole prepisuje na svakoj iteraciji.
Pregled “sys” biblioteke
The sys biblioteka je moćan ugrađeni Python modul koji omogućava pristup internim elementima tumača i različitim sistemskim specifičnim parametrima. U ovom članku smo se fokusirali na korištenje sys.stdout.write() i sys.stdout.flush() funkcije za prepisivanje izlaza konzole. Međutim, “sys” biblioteka nudi mnoge druge funkcionalnosti, kao što su argumenti komandne linije, redosled bajtova, izuzeci i unapred definisane putanje.
Pregled biblioteke „vreme“.
The vrijeme biblioteka je još jedan ugrađeni Python modul koji nudi niz funkcija vezanih za manipulaciju i obradu vremena. U našem primjeru koristili smo time.sleep() funkcija za stvaranje kašnjenja između iteracija. Biblioteka „vreme“ takođe pruža druge alate za merenje vremena izvršenja, konverziju između formata vremena i dobijanje trenutnog vremena. Ovaj modul je neophodan za programere koji rade sa vremenskim funkcijama ili zadacima planiranja u Python aplikacijama.