私は、sys.stdinからのユーザー入力が受け入れられる前に、サーバーに接続する必要のあるPythonでチャットプログラムを作成しています。接続ができない場合、プログラムは終了します。Pythonプログラムがstdinから読み込むものがあるかどうかをどのように知ることができますか?
接続が失敗し、接続しようとし、入力がプログラム終了後にシェルにエコーされながら入力が送信された場合、シェルからこれを実行する:
[email protected]:~$ python chat.py
attempting to connect...
Hey there! # This is user input
How are you? # This is more user input
connection failed
[email protected]:~$ Hey there!
Hey there!: command not found
[email protected]:~$ How are you?
How are you?: command not found
[email protected]:~$
があった場合に指示する方法はありますsys.stdinの左に入力されるので、チャットプログラムが終了する前にそれを読むことができますか?
私はthis similar questionを読んでいますが、答えは入力があるかどうかを判断する方法ではなく、入力がPythonプログラムにパイプされているかどうかを示す方法しか記述していません。
入力用の投票はきちんとしていますが、非ブロッキングI/Oも同様に機能します。ありがとう! –