Konsolės išvesties rašymas toje pačioje vietoje gali būti naudingas būdas kūrėjams dirbant su Python programomis, ypač kuriant vartotojo sąsajas komandinėje eilutėje, kuriant eigos indikatorius ir atnaujinant konsolės duomenis realiuoju laiku. Šiame straipsnyje bus aptartas konsolės išvesties perrašymo sprendimas, žingsnis po žingsnio paaiškintas kodas ir pasinerti į konkrečias bibliotekas bei integruotas Python funkcijas, kurios leidžia atlikti šią užduotį.
Norėdami tai pasiekti, galime naudoti garsiąją Python bibliotekos „prakeikimus“, kuri yra specialiai sukurta terminalo programoms, kurios labai priklauso nuo tekstinių vartotojo sąsajų naudojimo, kurti. Tačiau, kad būtų lengviau ir lengviau suprasti, naudosime Python integruotus „sys“ ir „time“ modulius, kad perrašytume konsolės išvestis.
Konsolės išvesties perrašymas Python
Pagrindinė idėja yra naudoti sys.stdout.write() funkcija, leidžianti spausdinti toje pačioje eilutėje kartu su vežimo grąžinimas simbolį („r“), kad grįžtumėte į eilutės pradžią, leidžiant mums perrašyti išvestį.
Štai konsolės išvesties perrašymo naudojant Python pavyzdys:
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
Žingsnis po žingsnio Kodekso paaiškinimas
1. Pirmiausia importuokite reikiamus modulius:
import time import sys
Geriausios laikas modulis bus naudojamas vėlavimui tarp iteracijų pridėti ir sys modulis bus naudojamas išvesties įrašymui į konsolę.
2. Tada sukurkite ciklą, kad galėtumėte kartoti skaičių diapazoną, imituojant eigos skaitiklį:
for i in range(10):
Ši kilpa kartojasi nuo 0 iki 9 ir efektyviai veikia dešimt kartų.
3. Kilpos viduje naudokite sys.stdout.write() funkcija spausdinti esamą iteracijos numerį kartu su etikete:
sys.stdout.write("rStep: %d" % i)
„R“ simbolis yra vežimėlio grąžinimas, kuris veikia kaip eilutės pradžios nustatymas iš naujo, leidžiantis kitam išėjimui perrašyti esamą.
4. Įsitikinkite, kad naudojate sys.stdout.flush() parašius į konsolę:
sys.stdout.flush()
Funkcija flush() išvalo vidinį buferį ir užtikrina, kad išvestis būtų rodoma nedelsiant.
5. Galiausiai pridėkite delsą naudodami time.sleep() funkcija:
time.sleep(1)
Ši pauzė truks vieną sekundę, todėl bus lengviau stebėti, kaip išvestis perrašoma.
Dabar galite pamatyti, kaip kiekvienos iteracijos metu konsolės išvestis perrašoma.
„Sys“ bibliotekos apžvalga
Geriausios sys biblioteka yra galingas integruotas Python modulis, suteikiantis prieigą prie vertėjo vidinių elementų ir įvairių konkrečiai sistemai būdingų parametrų. Šiame straipsnyje mes sutelkėme dėmesį į naudojimą sys.stdout.write() ir sys.stdout.flush() funkcijos perrašyti konsolės išvestį. Tačiau „sys“ biblioteka siūlo daug kitų funkcijų, tokių kaip komandų eilutės argumentai, baitų tvarka, išimtys ir iš anksto nustatyti keliai.
„Laiko“ bibliotekos apžvalga
Geriausios laikas biblioteka yra dar vienas integruotas Python modulis, siūlantis įvairias funkcijas, susijusias su laiko manipuliavimu ir apdorojimu. Savo pavyzdyje mes panaudojome time.sleep() funkcija sukurti delsą tarp iteracijų. „Laiko“ bibliotekoje taip pat yra kitų įrankių, skirtų matuoti vykdymo laiką, konvertuoti laiko formatus ir gauti dabartinį laiką. Šis modulis yra būtinas kūrėjams, dirbantiems su su laiku susijusiomis funkcijomis arba planuojantiems užduotis Python programose.