Ich habe die input
Funktion verwendet, um meine Skripte anzuhalten
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Gibt es einen formalen Weg, dies zu tun?
Ich habe die input
Funktion verwendet, um meine Skripte anzuhalten
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Gibt es einen formalen Weg, dies zu tun?
Antworten:
Scheint mir raw_input()
in Ordnung zu sein (oder in Python 2.X). Alternativ können Sie verwenden, time.sleep()
wenn Sie eine bestimmte Anzahl von Sekunden pausieren möchten.
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
print
, um den langen Textblock anzuzeigen, und dann input()
oder raw_input('Press <ENTER> to continue')
entsprechend Ihrer Python-Version.
input()
(oder raw_input()
Python 2.x) zu verwenden, um den Benutzer aufzufordern, anstatt eine Zeitverzögerung. Schnelle Leser möchten nicht auf eine Verzögerung warten, langsame Leser möchten möglicherweise mehr Zeit für die Verzögerung, jemand wird möglicherweise beim Lesen unterbrochen und möchte viel mehr Zeit usw. Auch wenn jemand das Programm häufig verwendet, kann er / sie Sie kann sich daran gewöhnen, wie es funktioniert, und muss nicht einmal den langen Text lesen. Es ist nur freundlicher, den Benutzer steuern zu lassen, wie lange der Textblock zum Lesen angezeigt wird.
Für Windows nur verwenden:
import os
os.system("pause")
Ich fand, dass dies bei meinen Codierungsbemühungen sehr gut funktioniert. Ich habe einfach ganz am Anfang meines Programms eine Funktion erstellt.
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
und jetzt kann ich die pause()
Funktion jederzeit verwenden , als ob ich eine Batch-Datei schreiben würde. Zum Beispiel in einem Programm wie diesem:
import os
import system
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
print("Think about what you ate for dinner last night...")
pause()
Natürlich hat dieses Programm kein Ziel und dient nur zum Beispiel, aber Sie können genau verstehen, was ich meine.
HINWEIS: Für Python 3 müssen Sie input
im Gegensatz zu verwendenraw_input
Ich hatte eine ähnliche Frage und benutzte das Signal:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Sie registrieren also einen Handler für das Signal SIGINT und halten inne und warten auf ein Signal. Jetzt können Sie von außerhalb Ihres Programms (z. B. in Bash) ausführen kill -2 <python_pid>
, wodurch Signal 2 (dh SIGINT) an Ihr Python-Programm gesendet wird. Ihr Programm ruft Ihren registrierten Handler auf und fährt fort.
signal.pause
.
Ich verwende das Folgende für python
2 und 3, um die Codeausführung anzuhalten, bis der Benutzer drücktENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Wie in den Kommentaren von Mhawke und Steveha hervorgehoben , wäre die beste Antwort auf diese genaue Frage:
Für einen langen Textblock ist es am besten,
input('Press <ENTER> to continue')
(oderraw_input('Press <ENTER> to continue')
Python 2.x) zu verwenden, um den Benutzer aufzufordern, anstatt eine Zeitverzögerung. Schnelle Leser möchten nicht auf eine Verzögerung warten, langsame Leser möchten möglicherweise mehr Zeit für die Verzögerung, jemand wird möglicherweise beim Lesen unterbrochen und möchte viel mehr Zeit usw. Auch wenn jemand das Programm häufig verwendet, kann er / sie Sie kann sich daran gewöhnen, wie es funktioniert, und muss nicht einmal den langen Text lesen. Es ist nur freundlicher, den Benutzer steuern zu lassen, wie lange der Textblock zum Lesen angezeigt wird.
Sehr einfach:
raw_input("Press Enter to continue ...")
exit()
NameError: name 'raw_input' is not defined
Print ("This is how you pause")
input()
Ich denke, dass der beste Weg, um die Ausführung zu stoppen, die time.sleep () Funktion ist. Wenn Sie die Ausführung nur in bestimmten Fällen unterbrechen müssen, können Sie einfach eine if-Anweisung wie folgt implementieren:
if somethinghappen:
time.sleep(seconds)
Sie können den Zweig else leer lassen.
Ich denke, ich mag diese Lösung.
import getpass
getpass.getpass("Press Enter to Continue")
Es verbirgt alles, was der Benutzer eingibt, um zu verdeutlichen, dass hier keine Eingabe verwendet wird.
Beachten Sie jedoch, dass auf der OSX-Plattform ein Schlüssel angezeigt wird, der möglicherweise verwirrend ist.
Die wahrscheinlich beste Lösung wäre, etwas Ähnliches wie das getpass-Modul selbst zu tun, ohne einen read -s
Anruf zu tätigen . Vielleicht passt die fg-Farbe zur bg?
Mit dieser Methode können Sie Ihr Programm fortsetzen, indem Sie eine der angegebenen Tasten drücken:
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # you can put any key you like instead of 'space'
break
gleiche Methode, aber auf andere Weise:
import keyboard
while True:
if keyboard.is_pressed('space'): # same, you can put any key you like instead of 'space'
break
Hinweis: Sie können das keyboard
Modul einfach installieren, indem Sie es in Ihre Shell oder cmd schreiben:
pip install keyboard
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')