Lire une entrée clavier
Posté : jeu. 20 déc. 2018 22:52
Bonjour,
Je bloque devant ce problème de lire une touche entrée au clavier pour ensuite déclencher une action .
J'utilise Raspbian et Python 3.5.3
Voila un script trouvé sur internet qui pourrait me convenir, mais il ne marche pas et je ne sais pas pourquoi !
J'ai ajouté à la fin le message d'erreur qui aparait quand je lance l'exécution du script.
#!/usr/bin/python3
# adapted from https://github.com/recantha/EduKit3-RC- ... eyboard.py
import sys, termios, tty, os, time
def getch():
fd=sys.stdin.fileno()
old_settings=termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd,termios.TCSADRAIN,old_settings)
return ch
button_delay=0.2
while True:
char = getch()
if(char == "s"):
print("Stop")
time.sleep(button_delay)
"""
Error message:
File "/home/pi/essai_02.py", line 16, in <module>
char = getch()
File "/home/pi/essai_02.py", line 6, in getch
fd=sys.stdin.fileno()
io.UnsupportedOperation: fileno
"""
Je bloque devant ce problème de lire une touche entrée au clavier pour ensuite déclencher une action .
J'utilise Raspbian et Python 3.5.3
Voila un script trouvé sur internet qui pourrait me convenir, mais il ne marche pas et je ne sais pas pourquoi !
J'ai ajouté à la fin le message d'erreur qui aparait quand je lance l'exécution du script.
#!/usr/bin/python3
# adapted from https://github.com/recantha/EduKit3-RC- ... eyboard.py
import sys, termios, tty, os, time
def getch():
fd=sys.stdin.fileno()
old_settings=termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd,termios.TCSADRAIN,old_settings)
return ch
button_delay=0.2
while True:
char = getch()
if(char == "s"):
print("Stop")
time.sleep(button_delay)
"""
Error message:
File "/home/pi/essai_02.py", line 16, in <module>
char = getch()
File "/home/pi/essai_02.py", line 6, in getch
fd=sys.stdin.fileno()
io.UnsupportedOperation: fileno
"""