input() bzw. Eingabefunktionen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lukas612
User
Beiträge: 7
Registriert: Donnerstag 14. Juni 2018, 16:31

Hallo zusammen,

gibt es eine Möglichkeit, dass mein Programm von alleine selbstständig weiterarbeitet, nachdem ich ein oder zwei Buchstaben mit Hilfe der Funktion input() eingegeben habe, ohne dass ich meine Eingabe mit der Enter-Taste bestätigen muss?
Beziehungsweise gibt es eine andere Funktion mit wessen Hilfe ich genau einen oder genau zwei Buchstaben eingebe und dann arbeitet mein Programm selbstständig weiter ohne dass ich meine Eingabe mit der Enter-Taste bestätigen muss?
Oder gäbe es auch eine Möglichkeit die Zeit zur Eingabe zu beschränken, sodass das Programm nach Ablauf der Zeit ohne Eingabe wert weitermacht?

Vielen herzlichen Dank schon mal im Voraus
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist so weit ich weiss nicht plattformunabhaengig zu bekommen. Fuer *NIXe wie Linux/macOS gibt's das eingebaute ncurses, fuer Windows nimmt man fuer den gleichen Zweck urwid. Falls du dann gleichzeitig noch echte Nebenlaeufigkeit willst, also etwas berechnen *waehrend* du auf Eingabe wartest (wenn auch kurz), dann brauchst du wohl auch noch Threading.
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Das ist abhängig vom Betriebssystem. Unter Linux/Unix geht das notfalls sogar mit Modulen aus der Python Standardbibliothek. Besser nimmt man aber eine Bibliothek für Textinterfaces wie z.B. urwid. Wie man das unter Windows löst, weiß ich nicht.

EDIT: __deets__ war schneller. Soweit ich weiß, ist urwid aber nicht für Windows verfügbar.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

nezzcarth hat recht, warum auch immer ich das geglaubt habe. Es gibt aber wohl Alternativen, zB https://pypi.org/project/windows-curses/
Benutzeravatar
__blackjack__
User
Beiträge: 14051
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

`click` hat eine `getchar()`-Funktion und ist Cross-Plattform. Es gibt da auch eine `pause()`-Funktion die auf irgendeine Taste wartet.

Falls `curses` finde ich den Wrapper `blessed` darüber ganz gut. Und nicht nur weil ich das Wortspiel mag. :-)

Auch wenn's vielleicht Overkill ist, aber mit `prompt_toolkit` kann man sich so etwas sicher auch basteln. Cross-plattform. Hat man vielleicht schon mal bei der Shell von IPython in Aktion gesehen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten