Riješeno: zapišite izlaz konzole na isto mjesto

Pisanje izlaza konzole na istom mjestu može biti korisna tehnika za programere kada rade s Python aplikacijama, posebno kada razvijaju korisnička sučelja u naredbenom retku, stvaraju indikatore napretka i ažuriraju podatke konzole u stvarnom vremenu. Ovaj će članak raspravljati o rješenju za prepisivanje izlaza konzole, objasniti kod korak po korak i zaroniti u specifične biblioteke i ugrađene Python funkcije koje omogućuju ovaj zadatak.

Da bismo to postigli, možemo upotrijebiti poznatu Python biblioteku “curses” koja je posebno dizajnirana za stvaranje terminalskih aplikacija koje uvelike ovise o korištenju tekstualnih korisničkih sučelja. Međutim, u svrhu jednostavnosti i lakšeg razumijevanja, koristit ćemo Pythonove ugrađene module “sys” i “time” za prepisivanje izlaza konzole.

Prepisivanje izlaza konzole u Pythonu

Glavna ideja je koristiti sys.stdout.write() funkcija, koja nam omogućuje ispis u istom retku, zajedno s povrat prtljage znak ("r") za povratak na početak retka, što nam zapravo omogućuje da prebrišemo izlaz.

Evo primjera prepisivanja izlaza konzole pomoću Pythona:

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
   

Korištenje električnih romobila ističe vrijeme modul će se koristiti za dodavanje kašnjenja između ponavljanja, i sys modul će se koristiti za pisanje izlaza na konzolu.

2. Zatim stvorite petlju za ponavljanje niza brojeva, simulirajući brojač napretka:

   for i in range(10):
   

Ova petlja ponavlja od 0 do 9, efektivno se izvodi deset puta.

3. Unutar petlje upotrijebite sys.stdout.write() funkcija za ispis trenutnog broja iteracije zajedno s oznakom:

   sys.stdout.write("rStep: %d" % i)
   

Znak "r" je znak za povratak na novi red koji djeluje kao reset na početak retka, dopuštajući sljedećem izlazu da prebriše trenutni.

4. Osigurajte korištenje sys.stdout.flush() nakon pisanja u konzolu:

   sys.stdout.flush()
   

Funkcija flush() čisti interni međuspremnik i osigurava da se izlaz odmah prikaže.

5. Na kraju dodajte odgodu pomoću time.sleep() funkcija:

   time.sleep(1)
   

Ova će pauza trajati jednu sekundu, što olakšava promatranje prepisivanja izlaza.

Sada možete vidjeti kako se izlaz konzole prepisuje pri svakoj iteraciji.

Pregled biblioteke “sys”.

Korištenje električnih romobila ističe sys biblioteka moćan je ugrađeni Python modul koji omogućuje pristup unutarnjim dijelovima tumača i raznim parametrima specifičnim za sustav. U ovom smo se članku usredotočili na korištenje sys.stdout.write() i sys.stdout.flush() funkcije za brisanje izlaza konzole. Međutim, biblioteka "sys" nudi mnoge druge funkcije, poput argumenata naredbenog retka, redoslijeda bajtova, iznimaka i unaprijed definiranih staza.

Pregled knjižnice “vrijeme”.

Korištenje električnih romobila ističe vrijeme biblioteka je još jedan ugrađeni Python modul koji nudi niz funkcija povezanih s manipulacijom i obradom vremena. U našem primjeru upotrijebili smo time.sleep() funkcija za stvaranje odgode između ponavljanja. Knjižnica “vrijeme” također nudi druge alate za mjerenje vremena izvršenja, pretvaranje formata vremena između formata vremena i dobivanje trenutnog vremena. Ovaj je modul neophodan za programere koji rade s vremenskim funkcijama ili raspoređuju zadatke u Python aplikacijama.

Povezani postovi:

Ostavite komentar