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
DDDoriginal
2024-12-28 20:25:11501parcourir

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()

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

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()

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

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!

Déclaration:
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