[Python] Domanda su input.

Gollum1 gollum1.smeagol1 a gmail.com
Lun 19 Feb 2018 18:42:19 CET


Il February 19, 2018 2:15:02 PM UTC, Gabriele Battaglia <iz4apu a libero.it> ha scritto:
>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.
>_______________________________________________
>Python mailing list
>Python a lists.python.it
>https://lists.python.it/mailman/listinfo/python

Non ci ho mai provato, ma in un thread separato, invece di usare input, aprire in lettura stdio, come fosse un file, e quindi catturi ogni singolo carattere, mano a mano che viene digitato? A quel punto devi solo capire come creare l'interazione tra i due thread, per passare il carattere letto.
-- 
Gollum1
Tesssoro, dov'è il mio tesssoro...

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli errori (maledetto correttore automatico).


Maggiori informazioni sulla lista Python