サブプロセスモジュールを使用して外部プログラム(plink.exe)を呼び出し、サーバーにログインしています。しかし、communicateを呼び出して出力を読み取ると、ブロックされています。コードは以下のとおりです。
import subprocess
process = subprocess.Popen('plink.exe hello@10.120.139.170 -pw 123456'.split(), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print process.communicate() #block here
plink.exe
ブロックがまだ実行されているためだと私は知っています。しかし、サブプロセスが終了する前に出力を読み取る必要があります。とにかくそれをすることはありますか?