Hello,
ma question concerne python mais je pense que c'est pareil avec tous les langages de scripts ...
Pendant le traitement d'un fichier xml, j'aimerai afficher un petit point pour chaque occurence traitee, histoire de dire "regarde, je bosse comme un grand" ...
Mais les pitis points s'affichent pas en meme temps que le traitement mais d'un coup a la fin ...
Comment passer de "j'ai fait tout ca pendant que tu attendais devant le curseur qui bougeait pas" a "touche a rien, je bosse, je bosse, je bosse, ..."
Forcer le rafraichissement pendant le traitement ?
:) Merci :)
# Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par Matthieu BENOIST . Évalué à 1.
une boucle
while ()
traitement ()
print "."
print "\n"
ne marche pas ?
[^] # Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
[^] # Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par TazForEver . Évalué à 1.
if i<0:
while isItOk():
return spam
return (spam, egg)
[^] # Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par TazForEver . Évalué à 1.
print '\n' -> print
tout simplement :D
# Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
En python je ne sait pas trops comment ca marche, en C on utilise fflush(stdout);
en perl '$| = 1;' (mais alors je sais pas pourquoi :))
si tu connait le pourcentage d'avancement de l'operation tu peut aussi faire
un truc sympa en utilisant '\r' qui renvient au debut de la ligne en cours (bon suivant le terminal ca peut cligner un peu hein) (cf cdrecord)
[^] # Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par rangzen (site web personnel) . Évalué à 1.
Merci !
( je crois que je vais aussi m'amuser un peu avec \r ;p )
# Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par Olivier Grisel (site web personnel) . Évalué à 3.
import sys # au début de ton fichier
sys.stdout.flush() # à chaque fois que tu écris un nouveau point
Quelle fonction utilises-tu pour écrire tes points ?
print '.', #?
Si c'est le cas, apparemment un appel à print n'actualise (flush) ton stdout que lorsque qu'une nouvelle ligne est demandée, ie sans virgule après le string dans l'expression "print string,"
[^] # Re: Rafraichissement du terminal pendant un traitement xml avec du python
Posté par rangzen (site web personnel) . Évalué à 1.
Merci beaucoup !
Et vive python !
# Une vrai barre de progression
Posté par TazForEver . Évalué à 1.
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/168639(...)
merci ASPN !
[^] # Re: Une vrai barre de progression
Posté par rangzen (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.