Re: [Python] Domanda su input.
> Il giorno 19 feb 2018, alle ore 18:42, Gollum1> ha scritto: > > 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. Ciao Gollum. Ho avuto anch’io questa idea e, almeno concettualmente mi sembra buona. Se leggi una mia mail di oggi, successiva a questa cui hai risposto, troverai un tentativo che ho fatto in questo senso. Tuttavia qualcosa mi sfugge. Anche qui, sembra che per valutare i caratteri letti dallo STDIN, serva premere un invio. Ho postato il codice che ho scritto. Provalo anche tu e dimmi se ci capisci qualcosa. Se riuscissi a farlo funzionare, andrebbe benone sotto ogni sistema operativo e sarebbe anche piuttosto semplice. Gabry. — Namasté! Sent from my iMac27. (Libero) ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Domanda su input.
Il February 19, 2018 2:15:02 PM UTC, Gabriele Battagliaha 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@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). ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Domanda su input.
Il 19/02/2018 15:43, Gabriele Battaglia ha scritto: Reply to the Riccardo Magliocchetti's message, wrote on 19/02/2018 at 15:25: Il 19/02/2018 15:15, Gabriele Battaglia ha scritto: 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. Tipo così? http://www.jonwitts.co.uk/archives/896 Fai girare quello dentro ad un thread e dovresti avere il comportamento che cerchi. Purtroppo no. Già la prima riga di codice dice: import sys, termios, tty, os, time Termios è presente solo sotto Mac/Linux. Niente Windows. Ok, ma ci sarà qualcosa di analogo no? Ad esempio: https://docs.python.org/3.6/library/msvcrt.html#console-i-o -- Riccardo Magliocchetti @rmistaken http://menodizero.it ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] Domanda su input.
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@lists.python.it https://lists.python.it/mailman/listinfo/python