Ratkaistu: kirjoita konsolin lรคhtรถ samaan paikkaan

Konsolin tulosteen kirjoittaminen samaan paikkaan voi olla hyรถdyllinen tekniikka kehittรคjille, kun he tyรถskentelevรคt Python-sovellusten kanssa, etenkin kun kehitetรครคn kรคyttรถliittymiรค komentorivillรค, luodaan edistymisilmaisimia ja pรคivitetรครคn konsolitietoja reaaliajassa. Tรคssรค artikkelissa kรคsitellรครคn ratkaisua konsolin ulostulon pรครคllekirjoittamiseen, selitetรครคn koodi vaihe vaiheelta ja sukeltaa tiettyihin kirjastoihin ja sisรครคnrakennetuihin Python-toimintoihin, jotka mahdollistavat tรคmรคn tehtรคvรคn.

Tรคmรคn saavuttamiseksi voimme kรคyttรครค kuuluisaa Python-kirjaston "kirouksia", joka on erityisesti suunniteltu luomaan pรครคtepohjaisia โ€‹โ€‹sovelluksia, jotka riippuvat suuresti tekstipohjaisten kรคyttรถliittymien kรคytรถstรค. Yksinkertaisuuden ja ymmรคrtรคmisen helpottamiseksi kรคytรคmme kuitenkin Pythonin sisรครคnrakennettuja sys- ja time-moduuleja konsolin tulosteiden korvaamiseen.

Konsolin lรคhdรถn pรครคllekirjoittaminen Pythonissa

Pรครคideana on kรคyttรครค sys.stdout.write() toiminto, jonka avulla voimme tulostaa samalla rivillรค yhdessรค vaunun palautus merkki (โ€œrโ€) palataksesi rivin alkuun, jolloin voimme tehokkaasti kirjoittaa tulosteen pรครคlle.

Tรคssรค on esimerkki konsolin lรคhdรถn pรครคllekirjoittamisesta Pythonilla:

import time
import sys

for i in range(10):
    sys.stdout.write("rStep: %d" % i)
    sys.stdout.flush()
    time.sleep(1)

Koodin vaiheittainen selitys

1. Tuo ensin tarvittavat moduulit:

   import time
   import sys
   

- aika moduulia kรคytetรครคn lisรครคmรครคn viivettรค iteraatioiden vรคlillรค ja sys moduulia kรคytetรครคn tulosteen kirjoittamiseen konsoliin.

2. Luo seuraavaksi silmukka, joka toistaa useita lukuja simuloimalla edistymislaskuria:

   for i in range(10):
   

Tรคmรค silmukka toistuu vรคlillรค 0 - 9 ja suoritetaan tehokkaasti kymmenen kertaa.

3. Kรคytรค silmukan sisรคllรค sys.stdout.write() toiminto tulostaa nykyisen iteraationumeron tarran kanssa:

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

"R"-merkki on rivin palautus, joka palauttaa rivin alkuun, jolloin seuraava tulos voi korvata nykyisen.

4. Varmista, ettรค kรคytรคt sys.stdout.flush() kirjoittamisen jรคlkeen konsoliin:

   sys.stdout.flush()
   

Flush()-funktio tyhjentรครค sisรคisen puskurin ja varmistaa, ettรค tulos nรคytetรครคn vรคlittรถmรคsti.

5. Lisรครค lopuksi viive kรคyttรคmรคllรค time.sleep() toiminto:

   time.sleep(1)
   

Tรคmรค tauko kestรครค yhden sekunnin, mikรค helpottaa tulosteen pรครคllekirjoituksen havaitsemista.

Nyt voit nรคhdรค, kuinka konsolin tulos korvataan jokaisessa iteraatiossa.

Yleiskatsaus "sys"-kirjastoon

- sys kirjasto on tehokas sisรครคnrakennettu Python-moduuli, joka tarjoaa pรครคsyn tulkin sisรคisiin osiin ja erilaisiin jรคrjestelmรคkohtaisiin parametreihin. Tรคssรค artikkelissa keskityimme kรคyttรถรถn sys.stdout.write() ja sys.stdout.flush() toimintoja konsolin lรคhdรถn pรครคllekirjoittamiseksi. "Sys"-kirjasto tarjoaa kuitenkin monia muita toimintoja, kuten komentoriviargumentteja, tavujรคrjestystรค, poikkeuksia ja ennalta mรครคritettyjรค polkuja.

Yleiskatsaus "aika"-kirjastoon

- aika kirjasto on toinen sisรครคnrakennettu Python-moduuli, joka tarjoaa erilaisia โ€‹โ€‹โ€‹โ€‹ajan kรคsittelyyn ja kรคsittelyyn liittyviรค toimintoja. Esimerkissรคmme kรคytimme time.sleep() toiminto luo viiveen iteraatioiden vรคlille. "Aika"-kirjasto tarjoaa myรถs muita tyรถkaluja suoritusajan mittaamiseen, aikamuotojen muuntamiseen ja nykyisen ajan saamiseen. Tรคmรค moduuli on vรคlttรคmรคtรถn kehittรคjille, jotka tyรถskentelevรคt Python-sovelluksissa aikaan liittyvien toimintojen tai ajoitustehtรคvien parissa.

Related viestiรค:

Jรคtรค kommentti