Lahendatud: kirjuta konsooli väljund samasse kohta

Konsooli väljundi kirjutamine samasse kohta võib olla Pythoni rakendustega töötamisel arendajatele kasulik võte, eriti käsureal kasutajaliideste arendamisel, edenemisnäitajate loomisel ja konsooliandmete reaalajas värskendamisel. Selles artiklis käsitletakse lahendust konsooli väljundi ülekirjutamiseks, selgitatakse koodi samm-sammult ning sukeldutakse konkreetsetesse teekidesse ja sisseehitatud Pythoni funktsioonidesse, mis seda ülesannet võimaldavad.

Selle saavutamiseks saame kasutada kuulsat Pythoni raamatukogu "needumist", mis on spetsiaalselt loodud terminalipõhiste rakenduste loomiseks, mis sõltuvad suuresti tekstipõhiste kasutajaliideste kasutamisest. Lihtsuse ja arusaadavuse huvides kasutame aga konsooli väljundite ülekirjutamiseks Pythoni sisseehitatud “sys” ja “time” mooduleid.

Konsooli väljundi ülekirjutamine Pythonis

Peamine idee on kasutada sys.stdout.write() funktsioon, mis võimaldab printida samale reale koos vankri tagasi märk (“r”), et naasta rea ​​algusesse, võimaldades meil väljundi üle kirjutada.

Siin on näide konsooli väljundi ülekirjutamisest Pythoni abil:

import time
import sys

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

Koodeksi samm-sammult selgitus

1. Esmalt importige vajalikud moodulid:

   import time
   import sys
   

. aeg moodulit kasutatakse iteratsioonide vahelise viivituse lisamiseks ja sys moodulit kasutatakse väljundi kirjutamiseks konsooli.

2. Järgmisena looge tsükkel, et itereerida arvude vahemikku, simuleerides edenemisloendurit.

   for i in range(10):
   

See tsükkel kordub vahemikus 0 kuni 9, töötades tõhusalt kümme korda.

3. Kasutage silmuse sees nuppu sys.stdout.write() funktsioon praeguse iteratsiooninumbri printimiseks koos sildiga:

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

R-märk on käru tagastus, mis toimib rea alguse lähtestamisena, võimaldades järgmisel väljundil praegune üle kirjutada.

4. Veenduge, et kasutate sys.stdout.flush() pärast konsooli kirjutamist:

   sys.stdout.flush()
   

Funktsioon flush() tühjendab sisemise puhvri ja tagab väljundi kohese kuvamise.

5. Lõpuks lisage viivitus, kasutades nuppu time.sleep() funktsioon:

   time.sleep(1)
   

See paus kestab ühe sekundi, muutes väljundi ülekirjutamise jälgimise lihtsamaks.

Nüüd näete, kuidas konsooli väljundit igal iteratsioonil üle kirjutatakse.

Ülevaade "sys" raamatukogust

. sys teek on võimas sisseehitatud Pythoni moodul, mis võimaldab juurdepääsu tõlgi sisemistele ja erinevatele süsteemispetsiifilistele parameetritele. Selles artiklis keskendusime kasutamisele sys.stdout.write() ja sys.stdout.flush() funktsioonid konsooli väljundi ülekirjutamiseks. Kuid teek "sys" pakub palju muid funktsioone, nagu käsurea argumendid, baitide järjestus, erandid ja eelmääratletud teed.

Ülevaade "aja" raamatukogust

. aeg raamatukogu on veel üks sisseehitatud Pythoni moodul, mis pakub mitmesuguseid aja manipuleerimise ja töötlemisega seotud funktsioone. Meie näites kasutasime time.sleep() funktsioon iteratsioonide vahelise viivituse tekitamiseks. "Aja" teek pakub ka muid tööriistu täitmisaja mõõtmiseks, ajavormingute teisendamiseks ja praeguse aja hankimiseks. See moodul on oluline arendajatele, kes töötavad Pythoni rakendustes ajaga seotud funktsioonidega või ülesannete ajakavaga.

Seonduvad postitused:

Jäta kommentaar