Python3 sleep() problème

J'ai écrit un programme simple sur Python 3.1 et je suis tombé sur ceci:

Si je l'exécute sur le RALENTI, il fonctionne comme prévu - imprime "Initializing." puis ajoute deux points, l'un après chaque seconde, et attend d'entrée.

from time import sleep

def initialize():
    print('Initializing.', end='')
    sleep(1)
    print(" .", end='')
    sleep(1)
    print(" .", end='')
    input()

initialize()

Le problème est que lorsque je double-cliquez sur le .py pour exécuter le fichier, il fonctionne sur python.exe au lieu de pythonw.exe et des choses étranges se produisent: il rejoint l'ensemble de la sleep() fois, c'est à dire me fait attendre pendant 2 secondes, puis imprime la totalité de la chaîne Initializing. . . à la fois. Pourquoi est-ce arrivé? Est-il un moyen pour éviter ce qui se passe dans le terminal? Il fonctionne très bien si j'utilise le RALENTI à la fois sur windows et linux.

J'imagine que la raison pour laquelle elle est mise en mémoire tampon est parce que vous n'avez pas donné un \n encore. En général, l'utilisation de end indique que vous allez sur et écrit quelque chose immédiatement.

OriginalL'auteur roddds | 2010-12-16