Ciao Manlio e tutti.

Grazie per i tuoi suggerimenti Manlio.
Sto applicando le modifiche che mi dicevi, affinché il mio script funzioni.
Qui in ufficio posso provarlo sotto Win, a casa poi, proverò anche sotto Mac, dove mi da i problemi maggiori.

Nel tuo precedente messaggio mi chiedevi perchè avessi settato il terminale in modalità non_blocking, con le seguenti istruzioni:

***
    fd = sys.stdin.fileno()
    oldterm = termios.tcgetattr(fd)
    newattr = termios.tcgetattr(fd)
    newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
    termios.tcsetattr(fd, termios.TCSANOW, newattr)
    oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
    fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
***

E mi indicavi quali righe di codice modificare per impostare diversamente il terminale, così:

***
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)

e

fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
***

Purtroppo la mia conoscenza delle istruzioni e dei loro metodi, è praticamente nulla. Ho copiato questo codice da un post su StackOverflow, ma non lo comprendo.

Saresti così gentile da dirmi in che modo, devo cambiare i parametri passati a queste istruzioni?

Per il resto, ho semplificato il codice come mi suggerivi tu definendo prima le funzioni, e poi assegnandole a key, in base alla rilevazione del sistema operativo da parte di sys.platform.
Il modulo è ora così:

https://www.dropbox.com/s/mvcrhyglml2tg1d/key3.py?dl=0

Grazie per il tuo aiuto.... Ovviamente non c'è fretta e siamo un po tutti, almeno spero... in vacanza, perciò rispondimi quando e se ne hai tempo e voglia.

Grazie infinite.

Gabriele.
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a