python: imprimer à l'aide de retour chariot et la virgule ne fonctionne pas
J'ai besoin d'imprimer sur une seule ligne dans une boucle (Python 3.x). En regardant autour de sur la DONC déjà, j'ai mis cette ligne dans mon code:
print('{0} imported\r'.format(tot),)
Cependant, il a toujours l'impression de plusieurs lignes lors de la boucle à travers. J'ai aussi essayé de
sys.stdout.write('{0} imported\r'.format(tot))
mais cela n'a pas l'impression rien à la console...
Ce que quelqu'un sait ce qui se passe avec ça?
sys.stdout.write()
fonctionne pour moi .. vous avez import sys
. Êtes-vous essayer de superposer la sortie sur la même ligne?Si vous essayez d'obtenir le même effet que
print text,
de python 2.x, vous devez utiliser le end
argument, comme dans print(text, end='')
. La virgule à la fin de la arguments de la fonction n'a aucun effet.Pas sûr que "de 2.x". La ligne
print(text, end='')
me donne une erreur de syntaxe à la =
.
OriginalL'auteur kevlar1818 | 2012-06-13
Vous devez vous connecter pour publier un commentaire.
Dans le premier cas, certains systèmes traiter
\r
comme un retour à la ligne. Dans le second cas, vous n'avez pasflush
la ligne. Essayez ceci:Rinçage de la ligne n'est pas nécessaire sur tous les systèmes, Levon me rappelle -- mais il est généralement une bonne idée lors de l'utilisation de
\r
de cette façon.Le
sys.stdout.flush()
était ce dont j'avais besoin. Merci!OriginalL'auteur senderle
Si vous voulez remplacer votre dernière ligne, vous devez ajouter \r (retour) et à la fin=" de telle sorte que vous n'avez pas aller à la ligne suivante.
OriginalL'auteur Joris
Je préfère utiliser la solution de Jan, mais de cette manière:
print()
.OriginalL'auteur Southernal