Manlio Perillo, alle 18:05 del 20/12/2014, digitò:
2014-12-20 14:21 GMT+01:00 Gabriele Battaglia <iz4...@libero.it <mailto:iz4...@libero.it>>:

    Ciao a tutti.
    Ho questo script che funziona bene sotto Windows, ma, a causa
    dell’assenza di MSCVRT, non posso portare sotto Mac o Linux.

    Qualcuno ha qualche idea sul come poterlo modificare per far sì
    che funzioni anche sotto questi 2 sistemi operativi?

    ***
    # -*- Coding: UTF8 -*-
    # Utility di lettura tastiera 20/06/2014
    # Grazie agli amici della lista Python.
    # Versione 1.0

    import 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.
GB.
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a