をsys.stdinをを使用して可能重複:UNIX上で
Can select() be used with files in Python under Windows?Windowsの
私はPythonでselect.select
にsys.stdin
を渡すことができています。私はWindowsでこれをやろうとしていますが、WindowsのPythonでselect.select
は許可しません。
私が行っていることをより正確に説明するには、https://github.com/eldarion/gondor-client/blob/ccbbf9d4b61ecbc2f66f510b993eb5fba0d81c09/gondor/run.pyを参照してください。
unix_run_poll
機能は、私がWindowsで達成しようとしている機能です。基本的な考え方は、私はストリーミングstdin、stdout、stderrをリモートで実行しているプロセスに接続しているサーバーへのソケット接続があり、ローカルクライアントからそれとやりとりしているように見せかけることです。プロセス。
win32_run_poll
は、Windowsに移植しようとしましたが、それはうまくいきます。それはちょっとばかげていて、IMOというアプローチは非常に悪いです。
これを改善する方法についての提案はありますか? win32apiへの依存性は理想的ではありませんが、私はそれを保つことで大丈夫です。
イベントループの実装専用のライブラリ/フレームワークを見てきましたか?たとえば、[twisted](http://twistedmatrix.com/trac/)には[Win32 reactor]の2つの実装があります(http://twistedmatrix.com/documents/current/core/howto/choosing-reactor.html# win32_wfmo)。 – user4815162342
面白いですね。私は今それをやっていた。 :-) –
もう一つの可能性は、スクリプトのstdin/stdoutとしてラップするのではなく、実際にあなたのスクリプトにソケットを与えてから、select.selectを使うだけです。 – abarnert