[Python] Domanda su input.

Gabriele Battaglia iz4apu a libero.it
Lun 19 Feb 2018 15:15:02 CET


Ciao a tutti.
Sono sempre alla ricerca di un modo per leggere la tastiera, senza 
bloccare il flusso del programma che funzioni sia sotto Windows che 
sotto Mac/Linux.
Ho letto tonnellate di post su StackOverflow, provato decine di script, 
ma non c'è nulla che funzioni come voglio. Ormai cerco questa cosa da 
oltre 4 anni.

Ora ci provo con i threads ma sento già che mi sto infilando in un 
vicolo senza uscita. Anche se demando ad un thread secondario la lettura 
della tastiera con un input infatti, prima che questo mi ritorni la 
variabile, devo comunque aspettare che l'utente prema invio. E non è 
questo ciò che mi serve.
Io ho bisogno che il tasto, o i tasti premuti, vengano letti 
immediatamente all'atto della loro pressione, non dopo l'invio.


Chiedo questo...

Esiste un modo di leggere il buffer della funzione input, prima che 
venga premuto invio e che questa assegni quanto digitato alla variabile?

Ad esempio, se io scrivo che a=input(), posso far si che un diverso 
thread legga cosa input sta ricevendo dal file stdin, man mano che 
l'utente digita i caratteri, in tempo reale?

Perdonate se non mi sono saputo spiegare bene.

La soluzione ideale sarebbe quella di trovare una "batteria", già pronta 
da caricare in Python ma fino ad ora, o sono stato sfortunato, oppure 
proprio non ce ne sono.

Prima che me le consigliate, vi racconto che: pygame non va bene perchè 
commuta la console in modo grafico, mentre io ho bisogno che rimanga 
così com'è, in modalità terminale. E nemmeno curses va bene, perchè 
sotto Windows non esiste e le sue emulazioni non funzionano.

GabryB.


Maggiori informazioni sulla lista Python