Quero que o meu script espere até que o utilizador carregue em qualquer tecla.
Como é que eu faço isso?
Em Python 3, não existe raw_input()
. Então, basta utilizar:
input("Press Enter to continue...")
Em Python 2, você deve utilizar raw_input()
, pois input(prompt)
é equivalente a eval(raw_input(prompt))
:
raw_input("Press Enter to continue...")
Isto só espera que um usuário pressione enter, então você pode querer usar msvcrt ((apenas Windows/DOS) O módulo msvcrt lhe dá acesso a várias funções na Biblioteca de Tempo de Execução do Microsoft Visual C/C++ (MSVCRT)):
import msvcrt as m
def wait():
m.getch()
Isto deve esperar por uma tecla de pressão.
Uma maneira de fazer isso em Python 2, é utilizar raw_input()
:
raw_input("Press Enter to continue...")
Em python3 it's apenas input()
O píton manual fornece o seguinte:
import termios, fcntl, sys, os
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
try:
while 1:
try:
c = sys.stdin.read(1)
print "Got character", repr(c)
except IOError: pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
que pode ser enrolado no seu estojo de uso.