[Python] Non blocking input.
Gabriele Battaglia
iz4apu a libero.it
Lun 13 Nov 2017 13:46:30 CET
Ciao a tutti.
Ho bisogno di leggere l'input da tastiera, senza bloccare il flusso del
programma, in uno script di Python3, che gira sul terminale.
L'idea è quella di realizzare uno script multipiattaforma. Dopo aver
sperimentato senza successo varie soluzioni e moduli, sto provando ora
curses, di cui ho trovato un porting per Windows, qui:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
Mi serve che il programma faccia delle cose, quando l'utente preme un
tasto e che l'azione parta immediatamente, senza aspettare l'invio, come
succede usando input. Inoltre, il flusso deve continuare a girare perchè
ci sono altri eventi, legati allo scorrere del tempo, che devono accadere.
Partendo da 0 nell'uso di curses, fatico a capirne la filosofia di
funzionamento. Ho visto il classico esempio di come si legge la tastiera:
while True:
c = stdscr.getch()
if c == ord('p'):
PrintDocument()
elif c == ord('q'):
break # Exit the while loop
elif c == curses.KEY_HOME:
x = y = 0
Ma onestamente non la capisco perchè l'esempio non è completo. Il modulo
curses, sembra non avere un metodo stdscr...
Qualcuno mi indirizza sulla via giusta?
Grazie.
Gabriele.
Maggiori informazioni sulla lista
Python