私はPythonプログラミングとプログラミングの初心者でもあります。この音が基本的な質問であるなら、親切に言い訳してください。
私はもちろんmakecleanとmakeongitを実行するツールを開発しています。
これらのmakeコマンドを実行するためにサブプロセスモジュールを使用しています。
1つの観察は次のとおりです:私はmakeコマンドの結果を見るためにcommunicateを使用します。通信の問題は、subprocess.popenが終了するのを待ってから、出力を送信することです。
makeコマンドが30分間実行された場合、画面に30分間出力が表示されず、通信は30分間収集したデータ全体を送信します。
質問は次のとおりです。stdoutに何かが表示されたときにサブプロセスから出力を取得し、それを画面に印刷する方法はありますか?
私がこれまでに書いたコードは次のとおりです。
def makeClean(path,cmd1='make',cmd2='clean'):
print '+++++++++++ RUNNING MAKE CLEAN +++++++++++ \n'
c = subprocess.Popen([cmd1 , cmd2],stdout = subprocess.PIPE, stderr = subprocess.PIPE,cwd = path)
out = c.communicate()[0]
for line in out.split('\r\n'): print line
これについて何か考えはありますか?pexpect.run()を使用してみましたが、うまくいきませんでした...
-Vijay