Scrierea rezultatelor din consolă în același loc poate fi o tehnică utilă pentru dezvoltatori atunci când lucrează cu aplicații Python, în special atunci când se dezvoltă interfețe cu utilizatorul în linia de comandă, se creează indicatori de progres și se actualizează datele consolei în timp real. Acest articol va discuta despre o soluție pentru suprascrierea ieșirii consolei, va explica codul pas cu pas și va explora biblioteci specifice și funcții Python încorporate care fac posibilă această sarcină.
Pentru a realiza acest lucru, putem folosi faimoasa bibliotecă Python „blesteme”, care este special concepută pentru a crea aplicații bazate pe terminale care depind în mare măsură de utilizarea interfețelor de utilizator bazate pe text. Cu toate acestea, în scopul simplității și ușurinței de înțelegere, vom folosi modulele „sys” și „time” încorporate din Python pentru a suprascrie ieșirile consolei.
Suprascrierea ieșirii consolei în Python
Ideea principală este de a folosi sys.stdout.write() funcția, care ne permite să imprimăm pe aceeași linie, împreună cu retur transport caracterul (“r”) pentru a reveni la începutul liniei, permițându-ne efectiv să suprascriem rezultatul.
Iată un exemplu de suprascriere a ieșirii consolei folosind Python:
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
Explicația pas cu pas a codului
1. Mai întâi, importați modulele necesare:
import time import sys
timp modulul va fi folosit pentru a adăuga întârziere între iterații și SYS modulul va fi folosit pentru a scrie ieșirea pe consolă.
2. Apoi, creați o buclă pentru a repeta pe o serie de numere, simulând un contor de progres:
for i in range(10):
Această buclă iterează de la 0 la 9, rulând efectiv de zece ori.
3. În interiorul buclei, utilizați sys.stdout.write() funcția de tipărire a numărului de iterație curent împreună cu o etichetă:
sys.stdout.write("rStep: %d" % i)
Caracterul „r” este întoarcerea căruciorului care acționează ca o resetare la începutul liniei, permițând următoarei ieșiri să o suprascrie pe cea curentă.
4. Asigurați-vă că folosiți sys.stdout.flush() dupa ce am scris pe consola:
sys.stdout.flush()
Funcția flush() șterge tamponul intern și asigură afișarea imediată a ieșirii.
5. În cele din urmă, adăugați o întârziere folosind timp.somn() funcţie:
time.sleep(1)
Această pauză va dura o secundă, facilitând observarea suprascrierii rezultatelor.
Acum puteți vedea cum ieșirea consolei este suprascrisă la fiecare iterație.
Prezentare generală a bibliotecii „sys”.
SYS biblioteca este un puternic modul Python încorporat care oferă acces la elementele interne ale interpretului și la diverși parametri specifici sistemului. În acest articol, ne-am concentrat asupra utilizării sys.stdout.write() si sys.stdout.flush() funcții pentru a suprascrie ieșirea consolei. Cu toate acestea, biblioteca „sys” oferă multe alte funcționalități, cum ar fi argumente de linie de comandă, ordine de octeți, excepții și căi predefinite.
Prezentare generală a Bibliotecii „timp”.
timp biblioteca este un alt modul Python încorporat care oferă o varietate de funcții legate de manipularea și procesarea timpului. În exemplul nostru, am folosit timp.somn() funcția de a crea o întârziere între iterații. Biblioteca „timp” oferă și alte instrumente pentru măsurarea timpului de execuție, conversia între formate de timp și obținerea orei curente. Acest modul este esențial pentru dezvoltatorii care lucrează cu funcții legate de timp sau care programează sarcini în aplicațiile Python.