Maison > développement back-end > Tutoriel Python > Comment puis-je écraser la sortie précédente vers la sortie standard (Stdout) en Python ?

Comment puis-je écraser la sortie précédente vers la sortie standard (Stdout) en Python ?

DDD
Libérer: 2024-12-28 20:25:11
original
445 Les gens l'ont consulté

How Can I Overwrite Previous Output to Standard Output (Stdout) in Python?

Écrasement de la sortie précédente sur Stdout

Dans de nombreux scénarios de programmation, il est nécessaire de modifier ou de mettre à jour la sortie affichée sur le terminal. Cet article explore les méthodes permettant d'écraser l'impression précédente sur la sortie standard, en la remplaçant par des valeurs mises à jour sur la même ligne.

Carriage Return (r)

Python fournit le caractère r (retour chariot) pour ramener le curseur au début de la ligne en cours sans passer à la suivante. En utilisant r, vous pouvez écraser l'instruction d'impression précédente :

# Python 3
for x in range(10):
    print(x, end='\r')
print()

# Python 2.7
from __future__ import print_function
for x in range(10):
    print(x, end='\r')
print()
Copier après la connexion

Virgule à la fin de l'instruction d'impression

Dans Python 2, une virgule à la la fin d'une instruction print l'empêche d'avancer à la ligne suivante, ce qui permet écrasement :

# Python 2
for x in range(10):
    print '{0}\r'.format(x),
print
Copier après la connexion

Effacer jusqu'à la fin de la ligne (x1b[1K)

Lorsque la nouvelle ligne de texte est plus courte que la précédente, vous peut utiliser x1b[1K (effacer jusqu'à la fin de la ligne) pour effacer le reste caractères :

for x in range(75):
    print('*' * (75 - x), x, end='\x1b[1K\r')
print()
Copier après la connexion

Désactivation du retour à la ligne

Par défaut, Python encapsule les lignes qui dépassent la largeur du terminal. Pour éviter cela et garantir que les caractères consécutifs écrasent la ligne précédente, désactivez le retour à la ligne avec x1b[7l :

print('\x1b[7l', end='')  # Disable line wrapping
for x in range(50):
    print(x, end='\r')
print('\x1b[7h', end='')  # Re-enable line wrapping
Copier après la connexion

Remarque : Réactivez toujours le retour à la ligne après l'avoir désactivé pour éviter de quitter le terminal dans un état cassé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal