Re: [Python] Domanda su input.

2018-02-19 Per discussione Gabriele Battaglia


> 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.

2018-02-19 Per discussione Gollum1
Il February 19, 2018 2:15:02 PM UTC, Gabriele Battaglia  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@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.

2018-02-19 Per discussione Riccardo Magliocchetti

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.

2018-02-19 Per discussione Gabriele Battaglia

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