Vous pouvez essayer cette implémentation pour Linux /Mac (et éventuellement d'autres systèmes Unix) (attribution de code: found on ActiveState Code Recipes).
Sur Windows vous devriez vérifier msvcrt.
import sys, termios, atexit
from select import select
# save the terminal settings
fd = sys.stdin.fileno()
new_term = termios.tcgetattr(fd)
old_term = termios.tcgetattr(fd)
# new terminal setting unbuffered
new_term[3] = (new_term[3] & ~termios.ICANON & ~termios.ECHO)
# switch to normal terminal
def set_normal_term():
termios.tcsetattr(fd, termios.TCSAFLUSH, old_term)
# switch to unbuffered terminal
def set_curses_term():
termios.tcsetattr(fd, termios.TCSAFLUSH, new_term)
def putch(ch):
sys.stdout.write(ch)
def getch():
return sys.stdin.read(1)
def getche():
ch = getch()
putch(ch)
return ch
def kbhit():
dr,dw,de = select([sys.stdin], [], [], 0)
return dr <> []
La mise en œuvre ce que vous cherchez deviendrait alors quelque chose comme ceci:
atexit.register(set_normal_term)
set_curses_term()
while True:
print "myline"
if kbhit():
print "paused..."
ch = getch()
while True
if kbhit():
print "unpaused..."
ch = getch()
break
Dupe: http: //stackoverflow.com/questions/577467/pause-in-python ??? –
Quel système d'exploitation utilisez-vous? – ktdrv
@Preet Sangha: Je ne dirais pas que c'est un doublon. La question ici est comment pouvez-vous mettre le programme en pause lorsque * l'utilisateur * le veut et que vous faites allusion au fait de faire une pause du programme quand * ça * le veut. – ktdrv