[Python] Lettura buffer di tastiera.

Manlio Perillo manlio.perillo a gmail.com
Ven 20 Giu 2014 20:17:33 CEST


2014-06-20 12:44 GMT+02:00 Gabriele Battaglia <iz4apu a libero.it>:

> Giorno di nuovo.
>
> Python 2.7.7, sotto Windows.
>
> Avrei bisogno di leggere i caratteri premuti sulla tastiera ma senza
> fermare il flusso del programma.
>
>
Puoi spiegare meglio cosa esattamente vuoi fare e, soprattutto, come è
organizzato il tuo programma?
Perchè ci sono diverse soluzioni possibili, a seconda dei dettagli.


> Input ferma tutto e attende la pressione di invio, perciò non va bene.
> Un po meglio msvcrt.getch() che riparte dopo la pressione di un qualsiasi
> tasto, ma ferma comunque tutto il flusso.
>
> Cosa posso usare in alternativa?
>
>
Windows ha un serie di API per gestire la console:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073(v=vs.85).aspx

In particolare, la soluzione classica è quella di passare l'handle della
console
ad una funzione come `WaitForSingleObject` specificando il timeout a 0, e
se c'è qualcosa da leggere chiamare `ReadConsole` (oppure un semplice
stdin.read(1), senza scomodare l'API specifica di Windows).


Ciao  Manlio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140620/923ea013/attachment.html>


Maggiori informazioni sulla lista Python