[Python] Nuove funzioni per la gestione degli eventi di tastiera?

Gabriele Battaglia iz4apu a libero.it
Dom 17 Feb 2019 22:24:18 CET



> Il giorno 17 feb 2019, alle ore 20:00, Manlio Perillo <manlio.perillo a gmail.com> ha scritto:
> 
> On Thu, Dec 6, 2018 at 2:20 PM Gabriele Battaglia <iz4apu a libero.it <mailto:iz4apu a libero.it>> wrote:
>> 
>> Salve a tutti e ben riletti dopo un bel po di tempo.
>> 
>> Vorrei chiedere a chi segue più di me i changelogs delle nuove versioni
>> se, ad esempio nella 3.7.1 in qualche versione precedente, fosse per
>> caso comparso qualcosa di nuovo sulle opportunità e modalità che Python
>> offre per intercettare gli eventi da tastiera, in script privi di GUI.
>> 
>> Da molti anni infatti, sono alla vana ricerca di uno script
>> multiplatform che mi permetta di rilevare la pressione di un tasto,
>> assegnare il valore del tasto premuto ad una variabile, senza
>> interrompere il flusso dello script.
>> A causa della mia incompetenza, con Python3, non ci sono mai riuscito.
>> 
> 
> Ricordo che già tempo fa qualcuno ti aveva consigliato:
> https://pypi.org/project/pynput/ <https://pypi.org/project/pynput/>
> 
> Funziona con un modello a callback, che potrebbe o no essere il
> modello migliore per il tuo caso.
> C'è un esempio nella pagina che ho riportato, nella sezione
> Monitoring the keyboard.
> 
Ciao Manlio.
Ho letto la guida qui: https://pynput.readthedocs.io/en/latest/keyboard.html <https://pynput.readthedocs.io/en/latest/keyboard.html>
L’avevo già letta tempo fa quando, come dici giustamente, questo modulo mi fu consigliato. Ma ora come allora, continuo a non capirlo. E’ troppo complesso per me, mi sfugge proprio il come funziona.
Innanzitutto, cos’è un modello a callback?

Io ho capito che va lanciato un listener della tastiera che apre un suo thread e si mette in ascolto. Ma poi, come leggo i tasti premuti?
Come faccio a dire al listner, che in un determinato punto del programma mi aspetto che l’utente prema le 4 frecce, e, qualche riga più avanti, una “s” o una “n”?

Mi servirebbe un esempio pratico, poter scambiare qualche mail con qualcuno che lo usa.

Un’altra cosa, vedo riportato spesso negli esempi relativi a questo modulo, la parola chiave with. Ho provato a carecarne una spiegazione nella documentazione di Python ma temo di non aver avuto successo. Assieme a lambda, map e filter, sono cose che non mi è ancora capitato di studiare ma che dovrò affrontare quanto prima.

Grazie per avermi fatto riconsiderare pynput, magari questa volta riesco ad impararlo e ad usarlo.

Gabriele.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20190217/3e5142a9/attachment.html>


Maggiori informazioni sulla lista Python