[Python] Non blocking input.

Manlio Perillo manlio.perillo a gmail.com
Gio 16 Nov 2017 00:29:35 CET


2017-11-13 13:46 GMT+01:00 Gabriele Battaglia <iz4apu a libero.it>:
> 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.
>

https://stackoverflow.com/questions/21791621/taking-input-from-sys-stdin-non-blocking
https://stackoverflow.com/questions/2408560/python-nonblocking-console-input

In questo modo usi solo funzioni della libreria standard, ma devi
comunque scrivere versioni separate per sistemi UNIX e Windows.

Per gestire eventi concorrenti, puoi usare un thread, o asyncio,
dipende da come intendi strutturare il resto del programma.

> [...]

Manlio


Maggiori informazioni sulla lista Python