Solucionat: escriviu la sortida de la consola al mateix lloc

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.

Articles Relacionats:

Deixa el teu comentari