7
votes

Comment puis-je modifier une chaîne imprimée sur stdout?

Comment puis-je modifier une chaîne que je viens d'imprimer? Par exemple, pour un compteur de compte à rebours (premières impressions 30, change ensuite à 29, etc.)

Merci.


1 commentaires

Ce n'est qu'une variante sur le Problème de curseur de filature .


5 Réponses :


7
votes

Imprimer un retour de chariot \ r et il ramène le curseur au début de la ligne. Assurez-vous d'imprimer une nouvelle ligne \ n à la fin, car vous ne pouvez pas enregistrer les lignes. Cela signifie que vous devez faire quelque chose comme: xxx

(par opposition à l'utilisation de imprimer , qui a ajouté une nouvelle ligne à la fin de ce qu'il écrit à stdout .)


3 commentaires

Dans Python 3, vous pouvez utiliser le paramètre de fin pour vous assurer qu'aucune nouvelle ligne n'est ajoutée à la fin: Imprimer (x, fin = "")


Avant Python 3, vous pouvez laisser un , après une instruction Imprimer pour vous assurer qu'aucune nouvelle ligne est ajoutée à la fin: Imprimer x,


J'ai copié ce code directement et il imprime sur une nouvelle ligne de Python 2.7



0
votes

Si vous êtes sur un périphérique de sortie de type Xterm, la façon dont vous faites cela est en écrasant la sortie. Vous devez vous assurer que lorsque vous écrivez le numéro, vous terminez par un retour de chariot (sans nouvelle ligne), ce qui déplace le curseur jusqu'au début de la ligne sans avancer à la ligne suivante. La sortie suivante que vous écrivez remplacera le numéro actuel affiché.


0 commentaires

0
votes

Vous ne pouvez pas changer ce que vous avez imprimé. Qu'est-ce que l'imprimé est imprimé. Mais, comme Bradley.ayers a déclaré que vous pouvez retourner au début de la ligne et imprimer quelque chose de nouveau sur l'ancienne valeur.


0 commentaires


0
votes

Vous pouvez utiliser le LISTLINE Module, qui peut Fournissez également Achèvement personnalisé et Historique de la commande .


0 commentaires