[Python] Portabilità di uno script.

Manlio Perillo manlio.perillo a gmail.com
Mar 23 Dic 2014 14:30:32 CET


2014-12-23 11:42 GMT+01:00 Gabriele Battaglia <iz4apu a libero.it>:

>
> Manlio Perillo, alle 18:05 del 20/12/2014, digiṭ:
>
>  > [...]

> mport msvcrt, time
>>
>> def key(attesa=99999, msg=""):
>>     ''' Attende per il numero di secondi specificati
>>     se tempo e' scaduto, o si preme un tasto, esce.
>>     msg e' il messaggio da mostrare.
>>     Restituisce il tasto premuto. '''
>>     if msg != "": print msg,
>>     t = time.time(); a = ""
>>     while (time.time() - t <= attesa):
>>         if msvcrt.kbhit(): a = msvcrt.getch()
>>         if a != "": break
>>         time.sleep(0.025)
>>
>
>  Devi impostare stdin in modalità cbreak e quindi usare select.select per
> attendere che l'utente scriva qualcosa.
>
> Ciao Manlio.
> Ma questa soluzione fermerebbe il flusso dello script, oppure no?
> A me serve una non-blocking solution.
>

Il comportamento è lo stesso di quello del codice che hai postato,
con la differenza che non usi time.sleep ma imposto il timeout
chiamando la funzione select.

select si comporta come sleep, con la differenza che se ci sono
dati sul file ritorna prima che scada il timeout.


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


Maggiori informazioni sulla lista Python