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