Escriure la sortida de la consola al mateix lloc pot ser una tècnica útil per als desenvolupadors quan treballen amb aplicacions Python, especialment quan es desenvolupen interfícies d'usuari a la línia d'ordres, es creen indicadors de progrés i s'actualitzen les dades de la consola en temps real. En aquest article s'explicarà una solució per sobreescriure la sortida de la consola, s'explicarà el codi pas a pas i s'endinsarà en biblioteques específiques i funcions de Python integrades que fan possible aquesta tasca.
Per aconseguir-ho, podem utilitzar la famosa biblioteca de Python "curses" que està dissenyada específicament per crear aplicacions basades en terminals que depenen en gran mesura de l'ús d'interfícies d'usuari basades en text. Tanmateix, per a la simplicitat i la facilitat de comprensió, utilitzarem els mòduls "sys" i "time" integrats de Python per sobreescriure les sortides de la consola.
Sobreescriure la sortida de la consola a Python
La idea principal és utilitzar el sys.stdout.write() funció, que ens permet imprimir en la mateixa línia, juntament amb el retorn de carro caràcter ("r") per tornar al principi de la línia, cosa que ens permet sobreescriure la sortida.
Aquí teniu un exemple de sobreescriure de la sortida de la consola amb Python:
import time
import sys
for i in range(10):
sys.stdout.write("rStep: %d" % i)
sys.stdout.flush()
time.sleep(1)
Explicació pas a pas del codi
1. Primer, importeu els mòduls necessaris:
import time import sys
La temps s'utilitzarà per afegir retard entre iteracions i el sys s'utilitzarà per escriure la sortida a la consola.
2. A continuació, creeu un bucle per iterar sobre una sèrie de números, simulant un comptador de progrés:
for i in range(10):
Aquest bucle itera de 0 a 9 i s'executa efectivament deu vegades.
3. Dins del bucle, utilitzeu el sys.stdout.write() funció per imprimir el número d'iteració actual juntament amb una etiqueta:
sys.stdout.write("rStep: %d" % i)
El caràcter "r" és el retorn de carro que actua com a restabliment al començament de la línia, permetent que la següent sortida sobreescrigui l'actual.
4. Assegureu-vos d'utilitzar sys.stdout.flush() després d'escriure a la consola:
sys.stdout.flush()
La funció flush() esborra la memòria intermèdia interna i assegura que la sortida es mostra immediatament.
5. Finalment, afegiu un retard amb el botó temps.dormir() funció:
time.sleep(1)
Aquesta pausa durarà un segon, per la qual cosa serà més fàcil observar la sortida que s'escriu.
Ara podeu veure com es sobreescriu la sortida de la consola a cada iteració.
Visió general de la biblioteca "sys".
La sys La biblioteca és un potent mòdul Python integrat que proporciona accés als elements interns de l'intèrpret i a diversos paràmetres específics del sistema. En aquest article, ens hem centrat a utilitzar sys.stdout.write() i sys.stdout.flush() funcions per sobreescriure la sortida de la consola. Tanmateix, la biblioteca "sys" ofereix moltes altres funcionalitats, com ara arguments de línia d'ordres, ordre de bytes, excepcions i camins predefinits.
Visió general de la biblioteca "temps".
La temps La biblioteca és un altre mòdul Python integrat que ofereix una varietat de funcions relacionades amb la manipulació i el processament del temps. En el nostre exemple, hem utilitzat temps.dormir() funció per crear un retard entre iteracions. La biblioteca "temps" també ofereix altres eines per mesurar el temps d'execució, convertir entre formats d'hora i obtenir l'hora actual. Aquest mòdul és essencial per als desenvolupadors que treballin amb funcions relacionades amb el temps o que programin tasques en aplicacions Python.