Seite 1 von 1

Tasten in Console lesen?

Verfasst: Freitag 20. März 2015, 18:38
von Pygoscelis papua
Über

Code: Alles auswählen

os.system('read -n1')
kann ich Zeichen einlesen ich möchte aber auch Tasten wie 'strg' lesen können.
Geht das und wen ja wie?

Re: Tasten in Console lesen?

Verfasst: Freitag 20. März 2015, 19:23
von jens

Re: Tasten in Console lesen?

Verfasst: Freitag 20. März 2015, 19:42
von /me
Ich würde da ja eher curses vorschlagen (insbesondere getch)

Re: Tasten in Console lesen?

Verfasst: Samstag 21. März 2015, 10:03
von Pygoscelis papua
geht das bei Curses auch ohne "Fenster" ?

Re: Tasten in Console lesen?

Verfasst: Samstag 21. März 2015, 10:27
von BlackJack
@Pygoscelis papua: Nein. Die Frage ist was Du tatsächlich lösen möchtest. Wenn man Strg erkennen möchte, dann ist das etwas für das normale Textmodusanwendungen mit ihren drei Standarddateien für ein- und ausgabe nicht direkt gedacht sind, das ist letztendlich ein ”GUI”-Programm, egal ob man dafür nun tatsächlich grafische Fenster oder eine Fensterbibliothek für das Terminal verwendet. Dafür gibt es `curses` in der Standardbibliothek oder zum Beispiel `urwid` als externe Bibliothek. Ansonsten müsste man selber direkt mit dem Terminal kommunizieren und hoffen dass das dann am Ende auch mit jedem Terminal funkioniert was man da programmiert hat. Dafür sind Bibliotheken wie `curses` ja da, dass man von den verschiedenen Terminals abstrahiert.

Das ``read -n1`` ist übrigens auch nicht unbedingt portabel, das kann nicht jede Shell, insbesondere ist das wohl nicht POSIX:

Code: Alles auswählen

$ read -n1
dash: 1: read: Illegal option -n

Re: Tasten in Console lesen?

Verfasst: Samstag 21. März 2015, 11:46
von Pygoscelis papua
Und wie geht das dann, wenn ich keine Curses Fenster haben möchte?
Ich wollte damit mir Programme machen, die ich gut in andere einbaue kann.
Das geht ja mit curses schlecht.

Re: Tasten in Console lesen?

Verfasst: Samstag 21. März 2015, 13:57
von Sirius3
@Pygoscelis papua: was meinst Du mit "Programm, die man in andere einbauen kann"?

Re: Tasten in Console lesen?

Verfasst: Samstag 21. März 2015, 15:04
von jens
Ah, es geht nur um ein Zeichen-Eingabe...

Dafür gibt es eine Plattform unabhängige Lösung hier: https://bitbucket.org/techtonik/python-pager/

Siehe auch: http://www.python-forum.de/viewtopic.ph ... 85#p261585

Re: Tasten in Console lesen?

Verfasst: Dienstag 31. März 2015, 10:55
von Pygoscelis papua
Also das kann man dann ganz normal auf der Console nutzrn und man kann damit auch "strg" und "F1" ... lesen?
Gibt es auch eine Anleitung oder so?

Re: Tasten in Console lesen?

Verfasst: Dienstag 31. März 2015, 12:55
von BlackJack
@Pygoscelis papua: Die API-Dokumentation ist dort doch auf der Seite. Einfach mal runterscrollen.

F1 kann das vielleicht als ”Zeichen” liefern, Strg wohl eher nicht weil das ja noch weniger ein Zeichen ist.

Du hast die Frage von Sirius3 nicht beantwortet. Ich ergänze die Frage mal um: Nenn mal ein existierendes Beispiel von dem was Du vorhast. Meine Vermutung: Da gibt's keines. Textmodusprogramme die auf die Strg *alleine* reagieren sind immer TUI-Programme die mit curses, newt, oder einer ähnlichen Bibliothek erstellt wurden. (Oder sie machen das was die Bibliotheken machen auf einer tieferen Ebene selber, aber warum sollte man so etwas machen wollen wenn `curses` doch in der Standardbibliothek ist.)