Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/07/2010, à 11:41

no_spleen

[RESOLU][PYTHON] print, retour chariot sans attendre

Bonjour,

J'ai un code de calcul itératif écrit en python. Je veux afficher le résultat intermédiaire à chaque boucle, mais en restant sur la même ligne et en écrasant le résultat précédant.

La solution semblerait être

print resultats,'\r',

mais le code attend la dernière itération pour afficher la ligne. Comment faire pour qu'il affiche le résultat sans attendre ?

Bien à vous

Dernière modification par no_spleen (Le 09/07/2010, à 13:20)

Hors ligne

#2 Le 09/07/2010, à 12:05

sensini

Re : [RESOLU][PYTHON] print, retour chariot sans attendre

salut,
pour forcer le "flush", il te faudra passer par sys.stdout je pense (enfin, c'est ce que je ferai…)
Que penses-tu de :

import time
import sys
i=0
while i<100:
  sys.stdout.write("%d\r" % i)
  time.sleep(1)
  sys.stdout.flush()
  i+=1

Dernière modification par sensini (Le 09/07/2010, à 12:05)


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne

#3 Le 09/07/2010, à 13:11

credenhill

Re : [RESOLU][PYTHON] print, retour chariot sans attendre

hello
utiliser l'option -u
       -u     Force stdin, stdout and stderr to be totally unbuffered.

Hors ligne

#4 Le 09/07/2010, à 13:19

no_spleen

Re : [RESOLU][PYTHON] print, retour chariot sans attendre

Cela marche nickel avec sys.stdout, Merci !

Hors ligne