Shkrimi i daljes së konsolës në të njëjtin vend mund të jetë një teknikë e dobishme për zhvilluesit kur punojnë me aplikacionet Python, veçanërisht kur zhvillojnë ndërfaqet e përdoruesit në vijën e komandës, krijojnë tregues progresi dhe përditësojnë të dhënat e konsolës në kohë reale. Ky artikull do të diskutojë një zgjidhje për mbishkrimin e daljes së konsolës, do të shpjegojë kodin hap pas hapi dhe do të zhytet në biblioteka specifike dhe funksione të integruara të Python që e bëjnë të mundur këtë detyrë.
Për ta arritur këtë, ne mund të përdorim "mallkimet" e famshme të bibliotekës Python, e cila është krijuar posaçërisht për krijimin e aplikacioneve të bazuara në terminal që varen shumë nga përdorimi i ndërfaqeve të përdoruesit të bazuara në tekst. Megjithatë, për qëllim të thjeshtësisë dhe lehtësisë së të kuptuarit, ne do të përdorim modulet e integruara "sys" dhe "time" të Python për të mbishkruar rezultatet e konsolës.
Mbishkrimi i daljes së konsolës në Python
Ideja kryesore është përdorimi i sys.stdout.write() funksion, i cili na lejon të printojmë në të njëjtën linjë, së bashku me kthim ngarkese karakteri ("r") për t'u kthyer në fillim të rreshtit, duke na lejuar në mënyrë efektive të mbishkruajmë daljen.
Këtu është një shembull i mbishkrimit të daljes së konsolës duke përdorur Python:
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
Shpjegimi hap pas hapi i kodit
1. Së pari, importoni modulet e kërkuara:
import time import sys
La kohë moduli do të përdoret për të shtuar vonesë ndërmjet përsëritjeve, dhe sys moduli do të përdoret për të shkruar daljen në tastierë.
2. Më pas, krijoni një lak për të përsëritur mbi një sërë numrash, duke simuluar një numërues progresi:
for i in range(10):
Ky lak përsëritet nga 0 në 9, duke ekzekutuar në mënyrë efektive dhjetë herë.
3. Brenda lakut, përdorni sys.stdout.write() funksion për të printuar numrin aktual të përsëritjes së bashku me një etiketë:
sys.stdout.write("rStep: %d" % i)
Karakteri "r" është kthimi i transportit që vepron si rivendosje në fillim të rreshtit, duke lejuar daljen tjetër të mbishkruajë atë aktuale.
4. Sigurohuni që të përdorni sys.stdout.flush() pasi shkruani në tastierë:
sys.stdout.flush()
Funksioni flush() pastron buferin e brendshëm dhe siguron që dalja të shfaqet menjëherë.
5. Së fundi, shtoni një vonesë duke përdorur koha.gjumë() funksioni:
time.sleep(1)
Kjo pauzë do të zgjasë për një sekondë, duke e bërë më të lehtë vëzhgimin e daljes që po mbishkruhet.
Tani mund të shihni se si dalja e konsolës po mbishkruhet në çdo përsëritje.
Pasqyrë e Bibliotekës “sys”.
La sys biblioteka është një modul i fuqishëm i integruar Python që ofron akses në të brendshmet e interpretuesit dhe parametra të ndryshëm specifikë të sistemit. Në këtë artikull, ne u fokusuam në përdorimin sys.stdout.write() sys.stdout.flush() funksionet për të mbishkruar daljen e konsolës. Sidoqoftë, biblioteka "sys" ofron shumë funksionalitete të tjera, si argumentet e linjës së komandës, renditja e byte-ve, përjashtimet dhe shtigjet e paracaktuara.
Pasqyrë e Bibliotekës “kohë”.
La kohë biblioteka është një tjetër modul i integruar i Python që ofron një sërë funksionesh që lidhen me manipulimin dhe përpunimin e kohës. Në shembullin tonë, ne përdorëm koha.gjumë() funksion për të krijuar një vonesë midis përsëritjeve. Biblioteka "koha" ofron gjithashtu mjete të tjera për matjen e kohës së ekzekutimit, konvertimin ndërmjet formateve të kohës dhe marrjen e kohës aktuale. Ky modul është thelbësor për zhvilluesit që punojnë me funksione të lidhura me kohën ose detyrat e planifikimit në aplikacionet Python.