J'utilise la input
fonction pour suspendre mes scripts
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
existe-t-il un moyen formel de le faire?
J'utilise la input
fonction pour suspendre mes scripts
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
existe-t-il un moyen formel de le faire?
Réponses:
Cela me semble bien (ou raw_input()
en Python 2.X). Vous pouvez également l'utiliser time.sleep()
si vous souhaitez faire une pause pendant un certain nombre de secondes.
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
print
pour afficher le long bloc de texte, puis input()
ou raw_input('Press <ENTER> to continue')
selon votre version de Python.
input()
(ou raw_input()
sur Python 2.x) pour inviter l'utilisateur, plutôt qu'un délai. Les lecteurs rapides ne voudront pas attendre un délai, les lecteurs lents voudront peut-être plus de temps sur le retard, quelqu'un pourrait être interrompu en le lisant et vouloir beaucoup plus de temps, etc. De plus, si quelqu'un utilise beaucoup le programme, il / elle peut s'habituer à son fonctionnement et n'a même pas besoin de lire le long texte. Il est plus simple de laisser l'utilisateur contrôler la durée d'affichage du bloc de texte pour la lecture.
Pour Windows uniquement, utilisez:
import os
os.system("pause")
Donc, j'ai trouvé que cela fonctionnait très bien dans mes efforts de codage. J'ai simplement créé une fonction au tout début de mon programme,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
et maintenant je peux utiliser la pause()
fonction chaque fois que j'en ai besoin, comme si j'écrivais un fichier batch. Par exemple , dans un programme comme celui-ci:
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()
Maintenant, évidemment, ce programme n'a aucun objectif et n'est qu'à titre d'exemple, mais vous pouvez comprendre précisément ce que je veux dire.
REMARQUE: pour Python 3, vous devrez utiliser input
par opposition àraw_input
J'ai eu une question similaire et j'utilisais le signal:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Vous enregistrez donc un gestionnaire pour le signal SIGINT et faites une pause en attendant tout signal. Maintenant de l'extérieur de votre programme (par exemple dans bash), vous pouvez exécuter kill -2 <python_pid>
, qui enverra le signal 2 (c'est-à-dire SIGINT) à votre programme python. Votre programme appellera votre gestionnaire enregistré et poursuivra son exécution.
signal.pause
.
J'utilise ce qui suit pour python
2 et 3 pour suspendre l'exécution du code jusqu'à ce que l'utilisateur appuie surENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Comme le soulignent les commentaires de mhawke et steveha , la meilleure réponse à cette question exacte serait:
Pour un long bloc de texte, il est préférable d'utiliser
input('Press <ENTER> to continue')
(ouraw_input('Press <ENTER> to continue')
sur Python 2.x) pour inviter l'utilisateur, plutôt qu'un délai. Les lecteurs rapides ne voudront pas attendre un délai, les lecteurs lents pourraient vouloir plus de temps sur le retard, quelqu'un pourrait être interrompu en le lisant et vouloir beaucoup plus de temps, etc. De plus, si quelqu'un utilise beaucoup le programme, il / elle peut s'habituer à son fonctionnement et n'a même pas besoin de lire le long texte. Il est plus simple de laisser l'utilisateur contrôler la durée d'affichage du bloc de texte pour la lecture.
Très simple:
raw_input("Press Enter to continue ...")
exit()
NameError: name 'raw_input' is not defined
Print ("This is how you pause")
input()
Je pense que la meilleure façon d'arrêter l'exécution est la fonction time.sleep (). si vous devez suspendre l'exécution uniquement dans certains cas, vous pouvez simplement implémenter une instruction if comme celle-ci:
if somethinghappen:
time.sleep(seconds)
vous pouvez laisser la branche else vide.
Je pense que j'aime ce soln.
import getpass
getpass.getpass("Press Enter to Continue")
Il cache tout ce que l'utilisateur tape, ce qui aide à clarifier que l'entrée n'est pas utilisée ici.
Mais attention, dans la plate-forme OSX, il affiche une clé qui peut prêter à confusion.
La meilleure solution serait probablement de faire quelque chose de similaire au module getpass vous-même, sans faire d' read -s
appel. Peut-être que la couleur fg correspond au bg?
Par cette méthode, vous pouvez reprendre votre programme simplement en appuyant sur n'importe quelle touche spécifiée que vous avez spécifié que:
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # you can put any key you like instead of 'space'
break
même méthode mais d'une autre manière:
import keyboard
while True:
if keyboard.is_pressed('space'): # same, you can put any key you like instead of 'space'
break
Remarque: vous pouvez installer le keyboard
module simplement en écrivant ceci dans votre shell ou cmd:
pip install keyboard
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')