Hallo,
ich bin Beginner und habe das Problem ein einzelnes Zeichen einzulesen über die Tastatur ohne mit return abzuschließen.
(Spezial-USB-Tastatur hat nur 2 Zeichen: Leerzeichen und Q, kein Return)
status = os.read(1, 1)
print ("status-",status,"-")
wartet bis zum jüngsten Tag auf das Return, ebenso input ().
Jetzt habe ich schon x Bücher durch geforstet und bin nicht schlauer geworden.
Jeder Editor stellt ein Zeichen sofort dar. Es muss also eine Lösung geben.
Ach ja, mein Englisch reicht nicht um Feinheiten zu erkennen.
hier mein Programmergebnis von oben (nach Eingabe von return nach einem Leerzeichen per Original-Tastatur, die es aber im echten Einsatz nicht mehr geben wird)
:~$ python ~/Ausw.py
status- b' ' -
Wäre dankbar für eine Lösung.
Danke
Alfred
Einzelzeichen auslesen ohne return
Das ist halt nichts, was man normalerweise so braucht, und deshalb muß man tief ins System eingreifen.
Code: Alles auswählen
import sys
import tty
import termios
def getch():
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
try:
tty.setraw(fd)
return sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old)