2017-07-22 5 views
0

kann nicht ausgeführt werden Ich habe Probleme mit dem Terminal auf meinem Mac. Ich versuche, Verzögerungstext auszudrucken (wie es auf einem Schreibgerät erscheint) und der Code (unten) war korrekt, als ich auf einem Online-Compiler testete.Zeitverzögerung Text auf Mac-Terminal (Python)

Aber mein Mac Terminal friert nur für eine Sekunde ein und druckt die ganze Aussage auf einmal aus. Ich habe Python 2.7.10 auf dem Mac. Ich schaute online nach oben und ich denke, mein Terminal schneidet den Puffer aus Gründen der Bequemlichkeit, aber jetzt brauche ich eigentlich der Puffer (Ich werde verzögerter Text viel drucken). Gibt es eine Anweisung, den Puffer auf meinem Terminal zu aktivieren (oder zu reparieren, da es standardmäßig eingestellt sein sollte)? Vielen Dank

Antwort

1

Sie müssen sys.stdout.flush() nach jedem sys.stdout.write() hinzuzufügen, um den Charakter zu erzwingen, anstatt es gepuffert erhalten zu lassen:

import sys 
import time 

introduction = "Welcome player. What's your name? " 

for character in introduction: 
    sys.stdout.write(character) 
    sys.stdout.flush() 
    time.sleep(0.2) 

name = raw_input() 
+0

Muss ich diese * jedes Mal zu tun * ich etwas drucken? Gibt es vor dem Programm eine Anweisung, die terminal daran erinnert, dass es nicht gepuffert werden darf? Danke für die Hilfe btw –

+0

Ich glaube nicht, dass Sie Pufferung ausschalten können, so ist die Antwort auf Ihre Frage _yes_: Sie müssen das jedes Mal tun. Sie können jedoch eine Funktion 'write_typewriter (text, delay)' definieren, die Ihren Code kurz hält. –

Verwandte Themen