Eventuali duplicati:
Can select() be used with files in Python under Windows?Utilizzando sys.stdin in select.select su Windows
Su UNIX sono in grado di passare a sys.stdin
select.select
in Python. Sto tentando di farlo su Windows, ma select.select
in Python su Windows non lo consentirà.
Per descrivere più accuratamente cosa sto facendo vedere https://github.com/eldarion/gondor-client/blob/ccbbf9d4b61ecbc2f66f510b993eb5fba0d81c09/gondor/run.py.
La funzione unix_run_poll
è ciò che sto cercando di ottenere su Windows. L'idea di base è che ho una connessione socket a un server che ha collegato streaming stdin, stdout, stderr a un processo in esecuzione in remoto e sto interagendo con esso dal client locale e facendolo apparire come se il client locale stia eseguendo il processi.
Il win32_run_poll
è il mio tentativo di portarlo su Windows e funziona, una specie di. È un po 'traballante e l'approccio, IMO, è pessimo.
Qualcuno ha suggerimenti su come questo può essere migliorato? La dipendenza da win32api non è l'ideale, ma io sono d'accordo nel mantenerlo.
Hai esaminato librerie/framework dedicati alle implementazioni del ciclo degli eventi? Ad esempio, [twisted] (http://twistedmatrix.com/trac/) ha due implementazioni di un [reattore Win32] (http://twistedmatrix.com/documents/current/core/howto/choosing-reactor.html# win32_wfmo). – user4815162342
Divertente, lo dici. Mi è capitato di farlo adesso. :-) –
Un'altra possibilità è quella di dare effettivamente lo script al socket, invece di avvolgerlo come stdin/stdout dello script, e quindi puoi semplicemente usare select.select. – abarnert