Bonsoir à toutes et à tous,
Je me demandais comment, en Python, il était possible d'écrire un texte lettre à lettre. J'ai essayé le code naïf suivant:
import sys, time
txt = "Bonjour les amis\n"
for L in txt:
sys.stdout.write(L)
time.sleep(0.1)
Cette méthode qui semble très logique ne fonctionne pas. Il faut en fait attendre 0.1*len(txt) secondes pour que le message s'affiche tout simplement en entier. On en perd donc l'animation que nous recherchions.
En fait, le problème provient du fait qu'on n'effectue pas le retour chariot, puisque si on le fait (avec, par exemple un simple print L), le temps en l'écriture de chaque lettre est correct, mais là, on perd la totale mise en forme que nous recherchions.
J'ai aussi testé avec la méthode signal.alarm (même si le temps avant que l'alarme ne se déclenche ne peut être qu'un nombre entier de seconde, j'étais juste curieux de voir si ça marcherait) : CA NE MARCHE PAS.
J'ai testé en lançant le run d'une classe, en me disant qu'un processus lancé en arrière plan pourrait peut-être faire l'affaire: CA NE MARCHE PAS.
Quelqu'un aurait-il une idée ?
Merci par avance,
Mickaël
Partager